如果发送了超过5个'ping '而没有响应,则发起重新连接。
当我故意关闭web sockets服务器时,客户端JavaScript代码:
try
{
self.socket.send('ping');
}
catch(ex)
{
console.log('exception');
}
写入Chrome控制台:
WebSocket is already in CLOSING or CLOSED state.
这个异常不能被try-catch捕获。如何检测数据不能通过web套接字发送?Onclose事件未被触发
我接受了错误无法被捕获的事实,并实现了乒乓解决方案。
JavaScript每n秒发送一个'ping'命令,服务器应该响应'pong'。
您可以查看readyState
try
{
if (self.socket && self.socket.readyState === 1) {
self.socket.send('ping');
}
else {
throw(new Error("WebSocket is not in OPEN state."));
}
}
catch(ex)
{
console.log('exception', ex);
}