Websocket 限制socket.io连接/重新连接

Websocket 限制socket.io连接/重新连接,websocket,socket.io,Websocket,Socket.io,我们在生产过程中遇到了一个问题,即如果一组用户同时失去internet连接(同一商店中的一组用户),然后所有用户都试图同时重新连接,或者nodejs服务重新启动,所有~2000 socket.io客户端尝试重新建立与服务器的连接。nodejs服务将变得不堪重负,套接字连接将开始进入一个似乎永无止境的连接和断开循环。这将减慢服务和其他请求(如服务器资产和接收api调用)的响应时间 上周,我们实现了一个节流包(ToobusyJS),除了昨天发生的套接字重新连接问题,节流器似乎没有进行干预外,它似乎工

我们在生产过程中遇到了一个问题,即如果一组用户同时失去internet连接(同一商店中的一组用户),然后所有用户都试图同时重新连接,或者nodejs服务重新启动,所有~2000 socket.io客户端尝试重新建立与服务器的连接。nodejs服务将变得不堪重负,套接字连接将开始进入一个似乎永无止境的连接和断开循环。这将减慢服务和其他请求(如服务器资产和接收api调用)的响应时间

上周,我们实现了一个节流包(ToobusyJS),除了昨天发生的套接字重新连接问题,节流器似乎没有进行干预外,它似乎工作正常。我们限制客户端仅使用web套接字作为传输,不进行升级


我想知道socket.io重新连接尝试是否会注册到toobusy js,因为协议已经是web套接字了?如果没有,我如何限制socket.io连接/重新连接?或者关于如何解决这个问题的建议?我们目前唯一可以阻止这种情况的方法是发送一个作业,杀死用户的Chrome会话,我们可以这样做,因为我们控制他们工作的本地服务器,这一点也不可取。

Node.JS应该能够很好地处理这么多连接。您可以创建自己的超时处理程序,只需延迟新的传入连接。这个包可能就是这么做的。随着用户登录时间的推移,Node在一天开始时处理几千个套接字连接没有问题。当服务重新启动时,所有套接字在同一时间突然重新连接,这就是问题所在。在经过更多测试和负载测试后,我有一些关于发生了什么的更多信息。首先,toobusy js节流没有考虑传入的套接字连接,我还必须在“socketio.on('connection',function(socket){”中添加节流代码。当服务器因大量套接字连接请求而过载时(例如服务重启)然后,连接良好的套接字将在60秒后ping超时,并尝试重新连接,这将给服务带来更多压力,这将变成一个非常倒退的循环。如何克服这个问题?想法?在客户端禁用自动重新连接,并自行处理。例如,为重新连接,在30到60秒之间执行随机计时器。Node.JS shoul您可以创建自己的超时处理程序,并延迟新的传入连接。这可能就是该软件包所做的。随着用户登录时间的推移,Node在一天开始时处理数千个套接字连接不会有问题。这是一次所有套接字的突然重新连接当服务重新启动时,这就是问题所在。在经过更多测试和负载测试后,我有更多关于正在发生什么的信息。首先,toobusy js节流没有考虑传入的套接字连接,我还必须在“socketio.on('connection',function(socket){”中添加节流代码。当服务器因一系列套接字连接请求而过载时(例如,服务重新启动)然后,连接良好的套接字将在60秒后ping超时,并尝试重新连接,这将给服务带来更多压力,这将变成一个非常倒退的循环。如何克服这个问题?想法?在客户端上禁用自动重新连接,并自行处理。例如,在30到60秒之间执行随机计时器,以便重新连接。