我们遇到了生产中的问题,即如果一组用户同时失去互联网连接(同一商店中的这类用户),然后所有用户同时尝试重新连接,或者nodejs服务重新启动并且所有~2000个socket.io客户端都尝试重新建立与服务器的连接,nodejs服务将变得不堪重负,套接字连接将开始进入看似永无止境的连接和断开循环。这将减慢服务和服务器资产等其他请求的响应时间,并接收api调用。
上周我们实施了一个限制包(toobusy-js),看起来工作正常,除了昨天当套接字重新连接问题发生时,节流器似乎没有进行调解。我们限制客户端使用Web套接字作为传输,不进行升级。
我想知道socket.io重新连接尝试是否会注册toobusy-js因为协议已经是web套接字了吗?如果不是,我怎么能限制socket.io连接/重新连接?或建议如何过分这个?我们目前唯一能阻止这种情况的方法是发送一个杀死用户Chrome会话的工作,我们可以这样做,因为我们控制他们工作的本地服务器,这不是最好的说法。