24

Node.js では、WebSocket 接続にwebsockets/wsを使用しています。以下は、クライアントのコードです。接続しているサーバー ソケットが 1 分間ダウンしたとします。close イベントは発生しますが、サーバーのソケットがダウンしたりエラーが発生した場合にソケットに再接続する最善の方法は何ですか?

var ws = new WebSocket('ws://localhost');

ws.on('open', function() {
    console.log('socket open');
});
ws.on('error', function() {
    console.log('socket error');
    // how do I reconnect to the ws after x minutes here?
});
ws.on('close', function() {
    console.log('socket close');
    // how do I reconnect to the ws after x minutes here?
});
4

6 に答える 6

37

これを試して:

var reconnectInterval = x * 1000 * 60;
var ws;
var connect = function(){
    ws = new WebSocket('ws://localhost');
    ws.on('open', function() {
        console.log('socket open');
    });
    ws.on('error', function() {
        console.log('socket error');
    });
    ws.on('close', function() {
        console.log('socket close');
        setTimeout(connect, reconnectInterval);
    });
};
connect();

元の実装をラップすることなく使用できます。

于 2014-10-04T16:51:10.200 に答える