Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
间歇性网络断开或网络切换时WebSocket断开_Websocket - Fatal编程技术网

间歇性网络断开或网络切换时WebSocket断开

间歇性网络断开或网络切换时WebSocket断开,websocket,Websocket,我们在web应用程序中使用tomcat websocket实现。消息通过WebSocket从服务器推送到客户端。当间歇连接断开或网络切换但Web应用程序仍然连接时,不会推送Web套接字消息 比方说,我连接到局域网并登录了应用程序,现在我通过wifi连接,在wifi成功连接后,我断开了局域网连接,有一小部分网络从局域网切换到了wifi,但在此之后,消息不会通过WebSocket从服务器推送到客户端 在网络切换之后,如果我检查websocket(readyState)的状态,该状态表示1,这意味着w

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

比方说,我连接到局域网并登录了应用程序,现在我通过wifi连接,在wifi成功连接后,我断开了局域网连接,有一小部分网络从局域网切换到了wifi,但在此之后,消息不会通过WebSocket从服务器推送到客户端

在网络切换之后,如果我检查websocket(readyState)的状态,该状态表示1,这意味着websocket连接已打开,但实际上未打开

谁能早点面对这个问题并提出你的建议


谢谢

您必须创建连接断开检测机制。WebSocket协议具有乒乓帧,但我不知道Tomcat是否具有该功能。在一些WebCoket框架中,您可以定义一个超时时间间隔,如果客户机错过了一些PONG,服务器将定期对客户机进行ping,如果客户机断开了连接

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