据我了解,Websockets使用Ping来检测它们是否仍然连接。当然Chrome除了让应用程序自己执行ping操作。
我想了解连接是否可能在ping之间变得不稳定,以至于没有接收到一帧数据......但是在下一次ping发送时再次稳定。换句话说:是否有可能有一个明显好的websocket连接,但数据无法到达?
问题与Is it possible to miss websocket events有关,而{{3}}仍然没有得到答复,并且被追踪到长轮询和套接字中。
谢谢!
答案 0 :(得分:0)
这在很大程度上取决于您使用的客户端软件(浏览器)。
websockets依赖于TCP连接,这将确保消息到达目的地。当然,除非网络连接断开。
但是,某些客户端(浏览器)将暂停非活动选项卡,并且不会处理事件。如果您的页面处于非活动状态,它“可能”无法将数据发送到服务器,因为它根本不会被执行。另一方面,它“可能”也无法接收数据,因为处理程序根本不会被执行。
同时,即使处于非活动状态,机器仍会收到ping数据包。因此,您的客户端软件是否会将其返回给您的代码。