@semki096

Как настроить websocket соединение с внешним апи?

Использую пакет https://github.com/websockets/ws Сделал клиента который получает данные со стороннего сервиса апи.
const WebSocket = require('ws');
const ws = new WebSocket('ws://www.apiserver/path');
ws.on('message', function incoming(data) {
  console.log(data);
});

Но периодически связь теряется. Я не силён в этой области, но возможно это связано с тем что мой клиент не отвечает на запрос pong? Как мне это проверить? Может быть можно использовать какие-то пакеты, которые будут писать логи и управлять процессом, так как сервис требует прерывать и возобновлять связь каждые 24 часа, и каждые 3 минуты шлёт pong запросы.

Частично это описано в ридми пакета, с примером, но для меня это пока сложно для понимания (как писать логи, как перезапускать каждые 24 часа)
const WebSocket = require('ws');

function heartbeat() {
  clearTimeout(this.pingTimeout);

  // Use `WebSocket#terminate()`, which immediately destroys the connection,
  // instead of `WebSocket#close()`, which waits for the close timer.
  // Delay should be equal to the interval at which your server
  // sends out pings plus a conservative assumption of the latency.
  this.pingTimeout = setTimeout(() => {
    this.terminate();
  }, 30000 + 1000);
}

const client = new WebSocket('wss://echo.websocket.org/');

client.on('open', heartbeat);
client.on('ping', heartbeat);
client.on('close', function clear() {
  clearTimeout(this.pingTimeout);
});
  • Вопрос задан
  • 199 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы