我正在尝试获取Deribit wss流,但是我仅收到1条传入消息。
不应该ws.on('message'自动更新输入流吗?请告诉我我错了。
谢谢
const WebSocket = require('ws');
const ws = new WebSocket('wss://www.deribit.com/ws/api/v1/');
ws.on('open', function open() {
var args = {
"instrument": "BTC-PERPETUAL",
"depth": "1L",
};
var obj = {
"id": 5232,
"action": "/api/v1/public/getorderbook",
"arguments": args,
//sig: restClient.generateSignature("/api/v1/private/subscribe", args)
};
console.log('Request object', obj);
ws.send(JSON.stringify(obj));
});
var bData;
ws.on('message', function incoming(data) {
if(data.length > 0)
{
var obj = JSON.parse(data);
bData = obj;
}
});
setTimeout(() => {
setInterval(() => {
console.log(bData.result.asks[0].price + ' ' + bData.result.bids[0].price );
}, 150);
}, 2050);
答案 0 :(得分:0)
getorderbook
端点是一次操作,与对REST端点的调用相同。
您应该更清楚地了解要执行的操作,但是我想您想在订单簿上获得连续的更新。为此,您需要subscribe
进入主题。
const params = {
"action": "/api/v1/private/subscribe",
"arguments": {"event": ["order_book"],
"instrument": ["BTC-PERPETUAL"]}
}
以下是相关文档:https://docs.deribit.com/rpc-endpoints.html#subscribe