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

Sri*_*ula 1 node.js socket.io socket.io-1.0

我正在使用“socket.io”:“1.4.5”,“socket.io-redis”:“1.0.0”。使用 socket-io-client 的 javascript 客户端似乎很乐意连接到服务器,除非服务器重新启动。连接尝试无法触发“connect_error”事件,并显示消息“{“message”:“xhr poll error”,“type”:“TransportError”,“description”:0“}”。如果我通过浏览器重新启动,连接工作正常。我还注意到,如果我在“connect_error”事件处理程序中设置断点并等待几秒钟,连接尝试最终会成功。我在客户端代码中缺少一些配置设置?这是我的客户端代码

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));
    });
Run Code Online (Sandbox Code Playgroud)

nod*_*man 5

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

        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();
            });
        });
Run Code Online (Sandbox Code Playgroud)