无法捕获Web套接字异常



当我故意关闭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'。

如果发送了超过5个'ping '而没有响应,则发起重新连接。

您可以查看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);
}

相关内容

  • 没有找到相关文章

最新更新