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

标签 javascript node.js sockets

我有两个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/

相关文章:

java - Android - 将 TCP 客户端转换为 UDP 客户端

javascript - 在 Node js 中使用 Promise 时,函数无法正常工作

javascript - 使用事件触发器如何在输入更改时将值传递给函数

node.js - 未创建索引,$text 查询需要文本索引 - mongoose

node.js - NestJS:依赖注入(inject)和提供者注册

Perl fork 套接字服务器,当客户端断开连接时停止接受连接

javascript - 调用位于服务器(并由客户端引用)的 jQuery 脚本适用于 IE 而不是 FF 而不是 Chrome

javascript - 打印无效后增加表格宽度

windows - 如何解析 node.js 或 io.js 中区分大小写的路径?

java - kafka.consumer.SimpleConsumer : Reconnect due to socket error: java. nio.channels.ClosedChannelException 异常