zenn · 游戏开发社区· 来源· maruhana·· 5 小时前AI 评分21
WebSocket 心跳机制无法检测冻结标签,需监听 freeze 事件主动断开
WebSocket の死活監視では、止まったタブを刈れなかった。pong はページが止まっていても返る
AI 导读
WebSocket 的 ping/pong 心跳机制仅能检测浏览器连接状态,无法识别页面冻结或后台挂起导致的“幽灵”玩家。作者通过实验发现 Chrome 在标签页冻结时仍会自动响应 Ping 帧,导致服务器误判连接存活。为此,开发者补充了 document.addEventListener('freeze', ...) 监听器,在标签页被系统冻结前主动关闭连接,从而彻底解决该问题。
来源:zenn · 游戏开发社区 · zenn.dev