Node.js 如何禁用socket.io上的五个连接限制?

Node.js 如何禁用socket.io上的五个连接限制?,node.js,socket.io,Node.js,Socket.io,我在聊天系统上使用socket.io和xhr轮询。我不想使用websocket,因为它不适用于所有用户。但如果用户在浏览器上打开5个选项卡,使用xhr轮询时,消息速度会减慢 这里也有同样的问题 我测试了它,但没有工作。仍然有5个连接限制。如何禁用此限制?您自己提供了解决方案--您链接的错误通知单在末尾有指向解决方案的链接,这基本上是为了添加以下内容: var http = require('http'); http.globalAgent.maxSockets = 100; http.Agen

我在聊天系统上使用socket.io和xhr轮询。我不想使用websocket,因为它不适用于所有用户。但如果用户在浏览器上打开5个选项卡,使用xhr轮询时,消息速度会减慢

这里也有同样的问题


我测试了它,但没有工作。仍然有5个连接限制。如何禁用此限制?

您自己提供了解决方案--您链接的错误通知单在末尾有指向解决方案的链接,这基本上是为了添加以下内容:

var http = require('http');
http.globalAgent.maxSockets = 100;
http.Agent.maxSockets = 100;

或者任何您想要的最大值。

我很晚才遇到这个问题,但您似乎已经达到了浏览器的连接限制。默认情况下,浏览器对一次可以打开多少个主机连接端口有限制(例如,Chrome允许8个)

因此,对于socket.io,当您打开同一域的5个选项卡时,这意味着您使用了浏览器允许的5个连接。对于普通网站,这不是问题,因为您请求并收到响应,然后连接关闭。但对于socket.io(和相关库),连接始终保持打开状态以接收“服务器推送”数据。我可能错了,但至少这是我的项目的问题(我不使用Socket.IO,而是使用类似的库)

解决方案是限制应用程序中socket.io连接的数量,以便始终只有一个连接。其余的通信应该通过交叉选项卡(跨窗口)事件(例如通过LocalStorage)完成。结果是,您有一个选项卡(窗口)保存真正的socket.io连接,并将事件(从socket.io接收)广播到其他选项卡(窗口)。当然,在实际执行

时,还有很多其他因素需要考虑。
p/s:很抱歉我的英语不好

这不起作用。仍然有5个连接限制。因为socket.io没有执行http请求。我仍然遇到以下问题:(