如果客户端页面加载和服务器关闭,则重试socket.io连接

时间:2012-09-26 10:42:21

标签: socket.io

我在局域网应用程序中使用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错误...

如果可能的话,我试图避免页面刷新。

1 个答案:

答案 0 :(得分:18)

我们可以手动使用套接字实例的重新连接方法。

socket.on('error', function (err) {
socket.socket.reconnect();
});