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

我使用socket.io与xhr在我的聊天系统上进行轮询。我不想使用websocket,因为没有在所有用户上工作。但是当我使用xhr轮询时,如果用户在浏览器上打开5个选项卡,邮件就会变慢。

这里同样的问题

https://github.com/LearnBoost/socket.io/issues/1145

我testing了它,但没有工作。即使有5个连接限制,我可以如何禁用此限制?

我遇到这个问题的时间比较晚,但似乎已经达到了浏览器的连接限制。 默认情况下,浏览器对主机端口的连接数有限制(例如,Chrome允许8个端口)

所以,对于你的socket.io的情况,当你打开5个标签到同一个域,这意味着你已经使用了5个连接,允许你的浏览器。 对于正常的网站,这不是一个问题,因为你请求并收到回应,然后closures连接。 但是对于socket.io(和相关库),连接始终保持打开状态,以接收“服务器推送”数据。 我可能是错的,但至less这是我的项目的问题(我不使用Socket.IO,但一个类似的库)

解决scheme是限制应用程序中socket.io连接的数量,以便始终只有一个连接。 其余的沟通应通过交叉表(跨窗口)事件(例如通过LocalStorage)完成。 结果是,你有1个选项卡(窗口)保存了真正的socket.io连接,并将事件(从socket.io接收)广播到其他选项卡(窗口)。 当然,在实际实施时还有很多其他因素需要考虑

P / s:我很抱歉我的英文不好

您自己提供了解决scheme – 您链接的错误票据最后链接到一个解决scheme,基本上是添加这个:

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

或者任何你想要的最大价值。