如果客户端页面加载时服务器宕机,重试socket.io连接。

6

我在局域网应用程序中使用SocketIO。

如果客户端启动而服务器关闭,如何使其不断重试连接?

"connect_failed"事件不会触发,因为socket.io中获取错误:“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错误引起的...我正在尽可能避免页面刷新。

为什么不尝试一下 "autoConnect" 设置呢? - youken
1个回答

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

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接