core
core copied to clipboard
[FEATURE] [实验性] 使用Service Worker来运行Websocket通信层
背景:
随着Chrome和Edge新版的发布,background WebSocket的限制愈发严格。
对于远程连接RTT的监控展示在Tab处于非活跃状态的时候,WebSocket被 pause / kill 的现象变多了。
类似于下图
可以考虑使用Service Worker来承接Websocket连接来避免被杀,不过效果如何依然有待测试,未来可以先做POC来验证效果。
Ref: https://stackoverflow.com/questions/60758141/how-to-detect-when-browser-throttles-timers-and-websockets-disconnection-after-a
听起来很棒。
Service Worker 有个缺点是第一次不会生效,sw 脚本安装以后要刷新一次才可以使用,或者也可以考虑一下 Web Worker
Service Worker 有个缺点是第一次不会生效,sw 脚本安装以后要刷新一次才可以使用,或者也可以考虑一下 Web Worker
如果WebWorker可以也是OK的,因为主要是的目的是让WS避免被Chrome的休眠或者throttle掉
https://developer.chrome.com/blog/background_tabs/ 之前的Chrome日志表示WS不会像是其他Timer一样被限制,但是最近一段时间的更新貌似WS也被杀的很厉害
Service Worker 有个缺点是第一次不会生效,sw 脚本安装以后要刷新一次才可以使用,或者也可以考虑一下 Web Worker
这个问题其实也还好,检测到Service Worker没有生效就fallback到传统的WS链路
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.