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



我最近发现Chrome似乎有6的连接限制(Chrome挂在一定数量的数据传输后-等待可用的套接字)不幸的是,我发现这是通过获得一个"等待可用的套接字"消息后加载太多标签(7)的困难方式。

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

我相信这是因为,in socket。io(我正在使用通知),我是xhr轮询,这导致Chrome必须等到它可以从其中一个连接中抓取套接字,然后才能处理页面。

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

我想到了几个解决方案:

  • 使xhr-polling窗口更小,这增加了浏览器和node.js中的连接,但这意味着页面不会停滞。
  • 使用尚。我不确定websockets是否对这个问题免疫。
  • 在未集中的选项卡上使连接无效。虽然其他网站似乎不需要这样做…
  • 使用某种连接共享。考虑到Chrome将websockets和xhr请求隔离到标签,我确实很难理解这是如何工作的。

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

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

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

这里有一些关于这个话题的参考资料:

  • 最大并行http连接在浏览器?

  • 浏览器到同一域的最大并发连接数

  • 每台主机的HTTP同时连接限制是每个标签,每个浏览器实例还是全局的?

相关内容

  • 没有找到相关文章