我正在开发一个应用程序,使用服务器推送事件(SSE - 基本上是一种单向的Websockets)。如果用户在移动 Chrome 浏览器上使用网站,然后标签页退出大约一分钟,SSE 连接就会断开。如果用户然后返回到网站,它不会刷新页面(这很好)。但我仍然需要重新建立 SSE 连接,以便服务器可以在没有刷新的情况下继续向他们发送消息。
我正在尝试调试我的实现,但在移动设备上进行非常繁琐。我必须拿起手机,刷新页面,然后标签页退出,等待1分钟(使连接断开),然后标签页返回,以确定重新建立连接的代码是否正常工作。
我更愿意能够在桌面上调试这个问题,但我没有找到方法。我已经尝试了以下方法:
- 尝试了5个不同的Chrome扩展程序来睡眠选项卡。不幸的是,当你回到该选项卡时,它只会刷新页面而不是恢复它。
- 尝试使用USB调试,但桌面始终保持选项卡处于打开状态,即使在移动设备上切换选项卡,选项卡也永远不会休眠。
- 尝试在Chrome开发者工具控制台中运行
debugger;
,但即使我让JavaScript的执行冻结了5分钟以上,它仍然不会断开SSE连接,因此我无法测试重新连接是否有效。 - 尝试使用扩展程序来杀死Chrome的互联网连接,但奇迹般的是,这仍然保持活动的websocket/SSE连接。显然,谷歌工程师已经降低了这方面的努力?
基本上,我想模拟在移动设备上发生的情况:当你从Web浏览器中切出并等待一分钟,然后切回(JavaScript执行被冻结,SSE连接在一分钟左右断开,然后切回恢复JavaScript并尝试重新连接SSE)。
这是可能的吗?