Websockets在间歇性网络中断或网络切换时断开连接

时间:2014-09-04 12:05:27

标签: websocket

我们在Web应用程序中使用tomcat websocket实现。消息通过websockets从服务器推送到客户端。当间歇性连接丢弃或网络切换但仍连接Web应用程序时,不会推送Web套接字消息。

比方说我连接到局域网并登录应用程序,现在我通过wifi成功连接后连接我断开局域网与第二网络的一小部分从局域网切换到wifi但是此消息未被推送服务器到客户端通过websockets。

网络切换之后,如果我检查websocket(readyState)的状态,这表示1表示websocket连接已打开,但实际上并非如此。

任何人都可以提前遇到此问题并提供您的建议。

由于

1 个答案:

答案 0 :(得分:1)

您必须创建连接丢弃检测机制。 WebSocket协议有ping / pong框架,但我不知道Tomcat是否具有该功能。在某些Webscoket框架中,您可以定义超时间隔,如果客户端错过了某些拨号线,服务器将定期ping客户端。

如果Tomcat不提供该功能,您仍然可以创建自己的功能。只需定义一种特殊类型的消息,然后从客户端将其重复到服务器。如果您暂时没有收到任何这些消息,请断开连接。