Ошибка проверки связи с сокетом при использовании библиотеки ws (nodejs) - PullRequest
0 голосов
/ 12 марта 2020

Я успешно внедрил пакет ws для nodejs для настройки сервера веб-сокетов.

Все работает нормально, за исключением случаев, когда я пытаюсь проверить доступность сокета согласно:

https://github.com/websockets/ws#how для обнаружения и закрытия разорванных соединений

Метод ws.ping(noop) всегда приводит к следующей ошибке:

Error: Parse Error
      at socketOnData (_http_server.js:480:20)
      at Socket.emit (events.js:187:15)
      at Socket.EventEmitter.emit (domain.js:441:20)
      at addChunk (_stream_readable.js:283:12)
      at readableAddChunk (_stream_readable.js:264:11)
      at Socket.Readable.push (_stream_readable.js:219:10)
      at TCP.onStreamRead (internal/stream_base_commons.js:94:17)

У меня есть попробовал почти все, используя ws.ping(), ws.ping('') или даже ws.ping(Buffer.alloc(0)), но безрезультатно.

сокет ws чист и работает, я могу отправлять и получать данные через него, используя события и метод ws.send() , Только пинг / понг терпит неудачу. Я использую нативный объект WebSocket на клиенте (браузере).

Возможно ли, что это связано с тем, что я использую noServer: true при создании экземпляра wss-сервера websocket?

Спасибо за любую помощь

...