我有两个node.js服务器,其中一个通过套接字连接到另一个并定期发送数据。
示例可能是:
客户端.js:
io = require('socket.io');
var socket = io.connect(IP_SERVER + ':' + PORT);
socket.on('connect', function () {
setInterval(socket.emit('data', new Date()), 60000);
});
服务器.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 上线,它就会重新获取数据...我不能知道这种情况何时发生吗?
更新:嗯,看起来它最终会重新连接,但所花费的时间似乎是随机的,我在文档中找不到任何关于此的信息...
最佳答案
默认情况下,它会在失去连接后尝试重新连接。还有一个设置(reconnectionDelay)让socket.io知道在尝试重新连接之前要等待多长时间,还有一个设置(reconnectionDelayMax)指定重新连接之间等待的最长时间。每次尝试都会按 reconnectionDelay 指定的量增加重新连接。
完整文档为here
关于javascript - Node.js 套接字,如果没有 FYN 数据包会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23498433/