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

How to solve Chrome's 6 connection limit when using xhr polling

我最近发现 Chrome 似乎有 6 个连接限制 ( Chrome hangs after certain amount of data transfered - waiting for available socket ) 不幸的是我通过在加载后收到 "waiting for available sockets" 消息来艰难地发现了这一点选项卡太多 (7)。

我知道这是 Chrome 因为另一个 Chrome 用户(a.k.a 另一个浏览器会话)同时在同一台计算机上完美加载网页(我有多个Chrome 用户在我的电脑上打开)。所以它无论如何都不是服务器。

我相信这是因为,在 socket.io(我用于通知)中,我正在进行 xhr 轮询,这导致 Chrome 必须等到它可以从这些连接之一才能处理页面。

解决这个问题的方法是什么?

我想到了几个解决方案:

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

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

对于可以创建的 webSocket 连接数有一个单独的全局限制,但它是一个很高的数字(Firefox 中为 200 - 不确定 Chrome 中的确切数量)。

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