当手机屏幕锁定时,WebSocket 连接会发生什么情况?



当手机浏览器具有打开的连接并且用户锁定屏幕时,在某个时候他们将不再具有WebSocket连接。

发生这种情况时会触发哪些事件?是否调用了WebSocket.onerrorWebSocket.onclose处理程序,如果是,当屏幕锁定/应用挂起时,或者当应用再次启动时,是否会发生这种情况?

(还有一个奖励问题:这是标准化的,还是浏览器的行为不同,如果是,如何

我自己做了一些测试,答案似乎是:没有触发任何事件。尽管连接确实断开,但不会触发errorclose事件,即使浏览器重新启动也是如此。因此,处理此问题的主要方法似乎是定期检查连接状态,并在需要时重新连接 - 在连接断开服务器端的情况下呈指数退避。(或者让一个库为你做这件事,尽管我还没有找到一个正确维护的基于客户端浏览器的 WebSocket 库来做到这一点。

本文的作者似乎证实了这一点:

移动设备

引入了一类新的连接问题;如果移动设备被锁定、进入睡眠状态或应用程序被移动到后台,则活动的 WebSocket 连接可能会变得无响应,并且无法正确关闭。

相关内容

最新更新