Я успешно внедрил пакет 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?
Спасибо за любую помощь