WebSocket 'message' только с одним результатом в потоке - PullRequest
0 голосов
/ 08 декабря 2018

Я пытаюсь получить поток 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);

1 Ответ

0 голосов
/ 11 декабря 2018

Конечная точка 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...