我试图用Websockets将REST更新为API,我不明白如何处理响应。
使用REST和awaits可以轻松地用响应来识别请求。
但是在WebSocket中,似乎所有的通信都是在onmessage中处理的,混合的,我不知道如何识别它。
如何识别请求中没有id的具体答案?
例如,我连接到一个WebSockets API,在本例中是Kraken (exchange),一旦连接打开,我就添加一个订单:
ws.send(JSON.stringify({
'event' : 'addOrder',
'ordertype' : 'limit',
'pair' : 'DAI/USD',
'price' : '0.005',
'token' : this.wsToken,
'type' : 'buy',
'volume' : '6',
}));
在onmessage中获得的响应可以是:
{"descr":"buy 6.00000000 DAIUSD @ limit 0.00500","event":"addOrderStatus","status":"ok","txid":"ABABC-ABABC-ABABC"}
该请求没有Id,如果我为addOrder和其他类型启动10个请求,则无法将请求与响应链接。
以这种方式使用API的逻辑是什么?
发布于 2022-06-06 12:17:58
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]);
https://stackoverflow.com/questions/67941376
复制相似问题