Node.js socket.io在500个并发连接后停止工作

Node.js socket.io在500个并发连接后停止工作,node.js,websocket,socket.io,Node.js,Websocket,Socket.io,我有一个javascript浏览器socket.io客户端模拟器,可以创建并发连接( io.connect(主机,{'force new connection':true});)到我的socket.io node.js服务器,但当websocket连接的数量大约为545时,它突然停止工作,客户端尝试通过xhr轮询或任何其他回退协议进行连接(当然没有任何成功)。 我试图调整我的服务器,即使到目前为止我还没有遇到任何硬件问题。我的ulimit-n设置为40960,ulimit-s设置为8192。 s

我有一个javascript浏览器socket.io客户端模拟器,可以创建并发连接(
io.connect(主机,{'force new connection':true});
)到我的socket.io node.js服务器,但当websocket连接的数量大约为545时,它突然停止工作,客户端尝试通过xhr轮询或任何其他回退协议进行连接(当然没有任何成功)。 我试图调整我的服务器,即使到目前为止我还没有遇到任何硬件问题。我的
ulimit-n
设置为40960,
ulimit-s
设置为8192。 sysctl-a | grep文件输出:

fs.file-max = 800000  
fs.file-nr = 7520       0       800000
我试图将http.globalAgent.maxSockets设置为40000,但没有任何效果。即使我尝试从不同的机器(位于不同的域中,之间没有代理)连接,并且只有100个并发连接,socket.io服务器也会在到达545个客户端时停止服务

我读了很多博客,比如:


有没有人知道我可能错过了什么?我正在使用最新的socket.io和node.js。我的服务器运行在ubuntu上。

我猜这是浏览器的限制。@FaridNouriNeshat我认为他关于通过不同的机器提供服务的观点和服务器仍然在消亡的观点排除了这一点。也就是说,我想知道这是否是网络设备问题,而不是代码/配置问题。在局域网中尝试这一点,尽可能少地使用网络硬件。如果你能把它简化成一个路由器,那就最好了。我的猜测是,这至少应该增加限制。