使用EventSource建立连接后,多开标签页页面卡死,如何解决?

使用EventSource建立连接接收后端推送的数据,但是多开标签页后(约3-4个)新的标签页页面卡死,请求都在pending,应该是因为到了浏览器连接数的上限了,要如何解决这个问题呢?

是不是使用websocket就不会有这个问题?

阅读 3.4k
3 个回答
✓ 已被采纳

推荐一个办法,使用Broadcast Channel API在不同的 tabs 之间进行通信,控制订阅的 tab 数量。

比如已经有1个新的tab建立了链接,就将之前的tabs链接关闭。

浏览器连接数的上限

  1. https2 没这个问题了
  2. 或者使用多域名来分担

如果多开页面是比较重要的需求,可以考虑把这部分请求放到 service worker 里。

  1. service worker 可以同域共享
  2. 只需要维持一个连接,也方便你管理
  3. 相比于 websocket,后端和基建都不用修改
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题