【问题标题】:How to keep the server client connection on如何保持服务器客户端连接开启
【发布时间】:2018-06-18 13:16:32
【问题描述】:

我使用现有的 node.js 代码从 GPS 设备接收数据。该代码是功能性的,但有一个缺陷。理想情况下,我们希望保持服务器-客户端连接处于活动状态。但似乎连接已关闭,然后非常频繁地打开。当我运行以下代码时,输​​出是这样的

新连接 现有连接 现有连接 新连接 现有连接 现有连接 新连接

任何人有改变它的建议?理想情况下,我们希望只有一个新连接,其余的是现有连接。

const net = require('net');
const request = require('request');

var server = net.createServer(function (socket) {

console.log('new connection');
socket.on('data', function(data) {
data = data.toString();
console.log('data from port',data);

console.log('exiting connection');
});
}).listen(39003, '0.0.0.0');

server.on('error', (err) => {
console.log(err);
});

server.on('listening', () => {
console.log('listening on port ' + 39003);
});

【问题讨论】:

  • 你有客户端代码吗?

标签: node.js sockets tcp server client


【解决方案1】:

你需要的两件事/行动项目:

  • 您的代码必须启用 keep-alives(看看这个,对于 nodejs:https://www.npmjs.com/package/agentkeepalive)。
  • 需要配置远程代码来支持keepalives(您可以运行tcpdump / wireshark 来查看哪一端关闭了连接)。根据提供 GPS 数据的服务,可以使用不同的配置选项。例如,在 nginx 中,可以使用 keepalive_timeout 0; 指令禁用 keepalives。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    相关资源
    最近更新 更多