socket.io JavaScript客户端重新启动服务器后无法重新连接

我使用“socket.io”:“1.4.5”,“socket.io-redis”:“1.0.0”。 使用socket-io-client的javascript客户端似乎很高兴地连接到服务器,除了服务器重新启动时。 连接尝试失败,触发'{“消息”:“xhr轮询错误”,“types”:“TransportError”,“描述”:0“}'消息”connect_error“事件如果我重新启动浏览器连接工作正常。我也注意到,如果我在事件处理程序中为“connect_error”设置了一个断点并等待几秒钟,那么连接尝试最终会成功。我错过了客户端代码中的一个configuration设置?

var socketConnectParams = {'max reconnection attempts': 150}; socketConnectParams['reconnection'] = true; socketConnectParams['reconnectionDelay'] = 5000; socketConnectParams['reconnectionDelayMax'] = 15000; var socket = io('http://localhost:8888', socketConnectParams); socket.on('connect', function () { }); socket.on('connect_error', function(error) { dLog("connection error event received." + JSON.stringify(error)); }); 

我听一个“断开”事件重新绑定一个新的“连接”事件。 这样,如果服务器重新启动,本地客户端将检测到这一点,并创build一个新的监听器,然后服务器再次出现。 也许你可以尝试一下。

  socket.on('disconnect', function(){ socketCleanup(); // this is a function to cleanup all listeners, just in case, so you can restart fresh socket.on('connect', function(){ socketConnect(); }); });