我有两个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在线,它重新获得数据......我不知道这种情况何时发生?
更新:好吧,它似乎最终重新连接,但它花费的时间似乎是随机的,我在文档中找不到任何相关内容......
答案 0 :(得分:0)
默认情况下,它会在失去连接后尝试重新连接。还有一个设置(reconnectionDelay)让socket.io知道在尝试重新连接之前要等待多长时间,并且还有一个设置(reconnectionDelayMax)指定重新连接之间等待的最长时间。每次尝试都会通过reconnectionDelay指定的数量增加重新连接。
完整文档为here