Я использую эту библиотеку веб-сокетов
https://github.com/websockets/ws
и настройте этот код для проверки, открыты ли мои соединения через веб-сокет
const interval = setInterval(function ping() {
wss.clients.forEach(function each(ws) {
if (ws.isAlive === false) {
console.log("I am terminating");
let obj = self.system._getClientByWs(ws)
let tenant = obj.tenant
self.system.deleteClient(obj, tenant)
return ws.terminate();
}
ws.isAlive = false;
console.log("Sending Ping");
ws.ping(self.noop);
});
}, 30000);
Я получаю ошибку прямо на
ws.ping(self.noop)
из
RangeError: Invalid WebSocket frame: invalid opcode 0
at Receiver.getInfo
(/home/path/node_modules/ws/lib/receiver.js:182:16)
at Receiver.startLoop
(/home/path/node_modules/ws/lib/receiver.js:121:22)
at Receiver._write
(/home/path/node_modules/ws/lib/receiver.js:69:10)
at doWrite (_stream_writable.js:334:12)
at writeOrBuffer (_stream_writable.js:320:5)
at Receiver.Writable.write (_stream_writable.js:247:11)
at Socket.socketOnData
(/home/path/node_modules/ws/lib/websocket.js:788:35)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)
at readableAddChunk (_stream_readable.js:176:18)
at Socket.Readable.push (_stream_readable.js:134:10)
at TCP.onread (net.js:548:20)
В настоящее время я не могу найти много информации о том, что является причиной этого, и единственным представленным решением было добавить обработку ошибок, но это было не для метода ping, а для метода wss.on ('connection')
Буду признателен за любую помощь!