首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用WebSockets (例如Kraken)使用API?

如何使用WebSockets (例如Kraken)使用API?
EN

Stack Overflow用户
提问于 2021-06-11 17:42:20
回答 1查看 491关注 0票数 0

我试图用Websockets将REST更新为API,我不明白如何处理响应。

使用REST和awaits可以轻松地用响应来识别请求。

但是在WebSocket中,似乎所有的通信都是在onmessage中处理的,混合的,我不知道如何识别它。

如何识别请求中没有id的具体答案?

例如,我连接到一个WebSockets API,在本例中是Kraken (exchange),一旦连接打开,我就添加一个订单:

代码语言:javascript
运行
复制
ws.send(JSON.stringify({
                'event' : 'addOrder',
                'ordertype' : 'limit',
                'pair' : 'DAI/USD',
                'price' : '0.005',
                'token' : this.wsToken,
                'type' : 'buy',
                'volume' : '6',
            }));

在onmessage中获得的响应可以是:

代码语言:javascript
运行
复制
{"descr":"buy 6.00000000 DAIUSD @ limit 0.00500","event":"addOrderStatus","status":"ok","txid":"ABABC-ABABC-ABABC"}

该请求没有Id,如果我为addOrder和其他类型启动10个请求,则无法将请求与响应链接。

以这种方式使用API的逻辑是什么?

EN

回答 1

Stack Overflow用户

发布于 2022-06-06 12:17:58

代码语言:javascript
运行
复制
useEffect(() => {
    new WebSocket('wss://ws.kraken.com').onopen = function () {
      this.onclose = () => console.log('SOCKET CLOSED');
      this.onmessage = (e) => console.log(JSON.parse(e.data));
      this.send(
        JSON.stringify({
          event: 'subscribe',
          pair: ['XBT/USD', 'XBT/EUR', 'ADA/USD'],
          subscription: { name: 'ticker' },
        }),
        (e) => console.log(e),
      );
    };
  }, [isPaused]);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67941376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档