使用xhr轮询时如何解决Chrome的6连接限制

Sam*_*aye 18 google-chrome xmlhttprequest websocket socket.io

我最近发现Chrome的连接数限制为6(Chrome在传输一定数量的数据后挂起 - 等待可用的套接字),不幸的是,我在加载后通过"等待可用的套接字"消息发现了这一点.太多标签(7).

我知道这是Chrome,因为另一个Chrome用户(也就是另一个浏览器会话)同时在同一台计算机上完全加载网页(我的计算机上打开了多个Chrome用户).所以它不是服务器的任何方式.

我相信这是因为,在socket.io(我用于通知)中,我是xhr-polling,这导致Chrome必须等到它可以从其中一个连接中获取套接字才能处理页面.

这是什么解决方案?

我想到了几个解决方案:

  • 使xhr-polling窗口变小,这会增加浏览器和node.js中的连接,但这意味着页面不会停止.
  • 使用websockets.我不确定websockets是否也能解决这个问题.
  • 在未聚焦的选项卡上使连接处于非活 虽然看起来其他网站不必这样做......
  • 使用某种连接共享.考虑到Chrome将websockets和xhr请求隔离到选项卡,我发现很难理解它是如何工作的.

作为一个补充点:我从一开始就没有使用websockets的原因是因为我使用了cloudflare.但如果这是解决问题的方法那么:就这样吧.

jfr*_*d00 15

使用真正的webSocket,而不是XHR轮询.webSocket连接不计入同一来源的http连接限制.

可以创建多少个webSocket连接有一个单独的全局限制,但它是一个很高的数字(Firefox中有200个 - 不确定它在Chrome中是什么).

以下是有关此主题的一些参考: