2014-09-04 123 views
1

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

让说,例如我连接到局域网和登录的应用程序,现在我通过WiFi连接后,无线连接成功我断开局域网与第二个网络的一小部分从局域网切换到WiFi但在此消息未被推动从服务器到客户端通过websockets。

经过网络切换后,如果我检查websocket(readyState)的状态,它表示1表示websocket连接打开但实际上不打开。

任何人都可以提前面对这个问题,并提供您的建议。

谢谢

回答

1

您必须创建一个连接丢失检测机制。 WebSocket协议具有ping/pong帧,但我不知道Tomcat是否具有该功能。在某些Webscoket框架中,您可以定义一个超时间隔,并且服务器将定期ping客户端,如果客户端错过一些话筒就会断开连接。

如果该功能不是由Tomcat提供的,那么您仍然可以创建自己的功能。只需定义一种特殊类型的消息并从客户端重复给服务器。如果您一段时间没有收到任何消息,请断开连接。