问题描述
我已经在节点js中构建了websocket客户端。我需要每8-10天重新启动一次。它突然停止监听websocket服务器。我已使用以下lib进行连接。
"ws": "^6.2.1"
我确实重新启动连接并在onclose和onerror侦听器中打印日志。
this.connection.onerror = error => {
rawDataStreamLog.info("Websocket ::: onerror " + JSON.stringify(error))
this.restartConnection();
};
this.connection.onclose = () => {
rawDataStreamLog.info("Websocket ::: onclose")
this.restartConnection()
};
任何见识将不胜感激。谢谢。
解决方法
您的服务器很有可能启动了断开连接。也许网络连接出了问题。
根据我的经验,用于长期连接的websocket客户端代码应通过重新连接来检测和处理关闭事件。如果在尝试多次重新连接后一切仍然失败,则可以调查服务器或网络中的问题。
您的服务器是否发送websocket ping (keepalive) message?如果没有,应该这样。