JS Websockets - 仍然重新连接,直到它成功

时间:2014-09-16 12:01:11

标签: javascript websocket

即使第一次尝试不成功,我也需要连接到websocket。我需要一些循环。

现在我有:

 ws = new WebSocket('ws://domain');
 if(!ws) return; 
 ws.onopen = function() {
                ws.send('getpayments '+ response );
 }; ...

我需要这样做才能连接。 请帮我。

1 个答案:

答案 0 :(得分:0)

不是真正的循环,而是递归重试:

var retry_connecting = function(domain, clb) {
    var ws = new WebSocket(domain);
    ws.onerror = function() {
        console.log('WS Error! Retrying...');

        // let the client breath for 100 millis
        setTimeout(function() {
            retry_connecting(domain, clb);
        }, 100);
    };
    ws.onopen = function() {
        clb(ws);
    };
};

和用法

retry_connecting('ws://domain', function(ws) {
    console.log('We are connected!');
});

此代码将尝试无限制地连接广告。我不推荐这个。但是我确定你能够修改它只运行有限次数,然后在重试太多后返回错误。

相关问题