html5 websocket 自动断开,退出手机浏览器,websocket会自动关闭,不是长持续吗

手机上的应用,包括浏览器退到后台,通常会被操作系统暂停. 似乎Android上的Chrome会打开websockets,但是当屏幕关闭时它会完全暂停计时器。这会导致设备在服务器端心跳超时时断开连接,并且由于心跳计时器未在客户端运行,它将继续重新连接并断开连接。类似保持连接的功能最好还是通过原生的服务实现更靠谱些.

这里有个后台表现列表供参考

Mobile devices can have different behaviour:

in background tabs

when display is turned off

This ticket is to track state of things

Timers at mobile devices

Browser

Background

Display off

Background WW

Display off WW

Android browser

OK

fail

OK

fail

Android FF

fail

fail

OK

OK

Android Chrome

OK

OK

OK

OK

iOS Chrome

OK

fail

OK

fail

iOS Safari

fail

fail

fail

fail

iOS Safari - sometimes timer in background can continue working 0-20 seconds

iOS Safari - foreground tab continue working 10-15 seconds after display turned off

Conclusion

Everything is bad on ios. The only solution is to reselect master.

On android things are acceptable, if you generate timer events from WebWorker

SharedWorker will not help:

not supported in browsers with timer problems

not much needed in browsers without timer problems

结论是 Chrome 还不错!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值