【问题标题】:Node.js sockets, what happen if no FYN packet?Node.js 套接字,如果没有 FYN 数据包会怎样?
【发布时间】:2014-05-06 23:58:41
【问题描述】:

我有两个 node.js 服务器,其中一个通过套接字连接到另一个并定期发送数据。

例如:

client.js:

io = require('socket.io');
var socket = io.connect(IP_SERVER + ':' + PORT);

socket.on('connect', function () {
    setInterval(socket.emit('data', new Date()), 60000);
});

server.js

var app = http.createServer(),
    io = require('socket.io').listen(app);
app.listen(PORT);
io.sockets.on('connection', function(socket) {
    socket.on('data', function(m) {
        console.log(m);
    });
});

现在,当两者进行通信时,我关闭了 server.js(例如 ctr-C)。 client.js 中是否弹出任何事件?服务器重启后client.js会自动连接吗?

我自己尝试过,为“结束”、“错误”和“关闭”添加侦听器。没有从哪里开始,但是一旦 server.js 上线,它就重新获得了数据......我不知道这是什么时候发生的?

更新:嗯,它似乎最终重新连接,但它花费的时间似乎是随机的,我在文档中找不到任何关于此的信息......

【问题讨论】:

标签: javascript node.js sockets


【解决方案1】:

默认情况下,它会在失去连接后尝试重新连接。还有一个设置 (reconnectionDelay) 让 socket.io 知道在尝试重新连接之前要等待多长时间,还有一个设置 (reconnectionDelayMax) 指定重新连接之间等待的最长时间。每次尝试都会按照 reconnectionDelay 指定的数量增加重新连接。

完整文档是here

【讨论】:

    猜你喜欢
    • 2015-08-21
    • 2016-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-12
    相关资源
    最近更新 更多