Узел WS Сбой при попытке Ping - PullRequest
0 голосов
/ 07 ноября 2018

Я использую эту библиотеку веб-сокетов

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')

Буду признателен за любую помощь!

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