如何在

时间:2018-01-09 13:29:44

标签: node.js sockets tcp server client

我使用现有的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);
});

1 个答案:

答案 0 :(得分:0)

您需要的两件事/行动事项:

  • 您的代码必须启用保持活动(请查看此节点,对于nodejs:https://www.npmjs.com/package/agentkeepalive)。
  • 需要配置远程代码以兑现Keepalive(您可以运行tcpdump / wireshark以查看哪一端关闭了连接)。根据提供GPS数据的内容,可以使用不同的配置选项。例如,在nginx中,可以使用// Dependencies import React from 'react'; import { inject, observer } from 'mobx-react'; import PropTypes from 'prop-types'; // Components import TestComponent from './TestComponent'; // App Component @inject('store') @observer export default class App extends React.Component { render() { return ( <div> <TestComponent store={this.props.store} /> // the Error above </div> ); } } App.propType = { store: PropTypes.any // What is the correct way to set this prop? }; 指令禁用keepalive。