【问题标题】:How to reconnect when a WebSocket disconnects?WebSocket断开连接时如何重新连接?
【发布时间】:2014-07-30 21:34:48
【问题描述】:

例子:

var WebSocket = require('ws');
var ws = new WebSocket('ws://echo.websocket.org/', {protocolVersion: 8, origin: 'http://websocket.org'});
ws.on('open', function() {
    console.log('connected');
    ws.send(Date.now().toString(), {mask: true});
});
ws.on('close', function() {
    console.log('disconnected');
    // What do I do here to reconnect?
});

socket关闭重新连接服务器时该怎么办?

【问题讨论】:

标签: node.js websocket


【解决方案1】:

您可以将所有设置包装在一个函数中,然后从关闭处理程序中调用它:

var WebSocket = require('ws');
var openWebSocket = function() {
    var ws = new WebSocket('ws://echo.websocket.org/', {protocolVersion: 8, origin: 'http://websocket.org'});
    ws.on('open', function() {
        console.log('connected');
        ws.send(Date.now().toString(), {mask: true});
    });
    ws.on('close', function() {
        console.log('disconnected');
        openWebSocket();
    });
}
openWebSocket();

但是,这里可能需要更多逻辑(如果 close 是故意的怎么办?如果您在重新连接时尝试发送消息会发生什么?)。你可能最好使用图书馆。 aembke 在 cmets 中建议的 This library 似乎是合理的。 socket.io 是一个不错的选择(它为您提供了非 WebSocket 传输)。

【讨论】:

    猜你喜欢
    • 2019-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多