Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Socket.io客户端火灾事件(如果Can';无法连接到服务器_Javascript_Node.js_Socket.io - Fatal编程技术网

Javascript Socket.io客户端火灾事件(如果Can';无法连接到服务器

Javascript Socket.io客户端火灾事件(如果Can';无法连接到服务器,javascript,node.js,socket.io,Javascript,Node.js,Socket.io,我在AmazonEC2上运行一个简单的node.js服务器,它为我运行socket.io。我正在开发一个在两个客户端之间发送数据的chrome扩展。但是,如果我使服务器脱机,客户端不会尝试自动重新连接。我想实现这个特性。当我执行socket=io.connect(“http://xxx.xxx.xxx.xxx:xxx“”如果它在指定的IP地址和端口上找不到服务器,我如何让它触发一个事件,使其进入递归循环,直到它可以?这样的东西存在吗 function connect() { socket

我在AmazonEC2上运行一个简单的node.js服务器,它为我运行socket.io。我正在开发一个在两个客户端之间发送数据的chrome扩展。但是,如果我使服务器脱机,客户端不会尝试自动重新连接。我想实现这个特性。当我执行
socket=io.connect(“http://xxx.xxx.xxx.xxx:xxx“”
如果它在指定的IP地址和端口上找不到服务器,我如何让它触发一个事件,使其进入递归循环,直到它可以?这样的东西存在吗

function connect() {
    socket = io.connect("http://123.456.789.1011:1337");
    socket.on('server_not_found', function() {
        connect();
    });
}

从socket.io wiki上看,似乎有一个connect\u failed事件可以侦听()。该事件没有为我触发(请参阅),但如果连接失败,将触发错误事件,您可以检查套接字上的连接状态。你可以试一下,看看哪一种效果更好

例如:

function connect() {
    var socket = io.connect("http://123.456.789.1011:1337"),
        timer;

    socket.on('error', function() {
        // wait 5 seconds then try again
        if (!socket.socket.connected) {
            timer = window.setInterval(function() { connect() }, 5000);
        }
    });

    socket.on('connect', function() {
        // we've connected so clear the timer
        window.clearInterval(timer);
    });
}

工作得很有魅力!:)令人惊叹的!很乐意帮忙:)