Использую пакет
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);
});