6

我在 LAN 应用程序中使用 SocketIO。

如果客户端启动并且服务器关闭,我怎样才能让它继续重试连接?

“connect_failed”事件不会触发,因为我在 socket.io 中收到 GET 错误:“ http://172.20.2.10:8080/socket.io/1/?t=1348654723279

所以我尝试了:

 var socket = io.connect('172.20.2.10',{port:8080});    
 var connected = false;

    socket.on('connect',function(){                                
                    connected = true;
                });
    socket.on('error', function (err) {
                    reconnect();
                });

    function reconnect(){
                    if (!connected){
                        var t = setTimeout( function() {
                            socket = io.connect('172.20.2.10',{port:8080});
                            reconnect();
                            console.log("Socket REC");
                        },1000);

                    }
                }

但是它没有重新连接,我认为是因为JS错误......

如果可能,我会尽量避免页面刷新。

4

1 回答 1

19

我们可以手动使用socket实例的reconnect方法。

socket.on('error', function (err) {
socket.socket.reconnect();
});
于 2012-12-10T11:42:29.780 回答