Node.js套接字,如果没有FYN数据包会发生什么?

时间:2014-05-06 15:09:04

标签: javascript node.js sockets

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

例如:

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会自动连接吗?

我自己尝试过,通过添加'end','error'和'close'的监听器。没有在哪里开始,但一旦server.js在线,它重新获得数据......我不知道这种情况何时发生?

更新:好吧,它似乎最终重新连接,但它花费的时间似乎是随机的,我在文档中找不到任何相关内容......

1 个答案:

答案 0 :(得分:0)

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

完整文档为here