WebSocket сервер работает на nodejs. При падении стал замечать такие ошибки:
Error: not opened
at WebSocket.send (/root/node/node_modules/ws/lib/WebSocket.js:214:16)
at WebSocket.<anonymous> (/root/node/server.js:30:19)
at WebSocket.emit (events.js:112:17)
at Receiver.ontext (/root/node/node_modules/ws/lib/WebSocket.js:797:10)
at /root/node/node_modules/ws/lib/Receiver.js:473:18
at Receiver.applyExtensions (/root/node/node_modules/ws/lib/Receiver.js:360:5)
at /root/node/node_modules/ws/lib/Receiver.js:462:14
at Receiver.flush (/root/node/node_modules/ws/lib/Receiver.js:336:3)
at Receiver.opcodes.1.finish (/root/node/node_modules/ws/lib/Receiver.js:478:12)
at Receiver.expectHandler (/root/node/node_modules/ws/lib/Receiver.js:447:33)
/root/node/node_modules/ws/lib/WebSocket.js:214
else throw new Error('not opened');
^
Error: not opened
at WebSocket.send (/root/node/node_modules/ws/lib/WebSocket.js:214:16)
at WebSocket.<anonymous> (/root/node/server.js:30:19)
at WebSocket.emit (events.js:112:17)
at Receiver.ontext (/root/node/node_modules/ws/lib/WebSocket.js:797:10)
at /root/node/node_modules/ws/lib/Receiver.js:473:18
at /root/node/node_modules/ws/lib/Receiver.js:357:7
at /root/node/node_modules/ws/lib/PerMessageDeflate.js:217:5
at afterWrite (_stream_writable.js:363:3)
at onwrite (_stream_writable.js:354:7)
at WritableState.onwrite (_stream_writable.js:107:5)
На английском СО нашёл схожий вопрос:
stackoverflow.com/questions/24326413/node-js-webso...
Верно ли я понимаю, что крах происходит из-за попытки сокета отправить сообщение уже отключенному клиенту? Т.е. нужна дополнительная проверка на активность подключения, прежде чем отправить сообщение?
И происходит данная ошибка крайне не часто и конкретную причину падения отловить (воспроизвести) пока не удалось.