我正在使用Node.js构建一个TCP消息服务器。它只是在我的服务器上等待连接,例如来自Arduino的连接。
当它在连接时使用唯一标识符(而不是IP)进行身份验证,因此我可以在服务器> Arduino之间写入数据,而无需知道客户端设备的IP地址。
但为了提高效率,我希望连接尽可能长时间保持打开状态,最好是直到客户端设备关闭连接(例如在IP更改时)。
这是服务器(相关部分):
当它在连接时使用唯一标识符(而不是IP)进行身份验证,因此我可以在服务器> Arduino之间写入数据,而无需知道客户端设备的IP地址。
但为了提高效率,我希望连接尽可能长时间保持打开状态,最好是直到客户端设备关闭连接(例如在IP更改时)。
这是服务器(相关部分):
var net = require('net'),
sockets = {};
var tcp = net.createServer(function(soc){
soc.setKeepAlive(true); //- 1
soc.on('connect', function(data){
soc.setKeepAlive(true); //- 2
});
soc.on('data', function(data) {
//- do stuff with the data, and after identification
// store in sockets{}
})
}).listen(1111);
soc.setKeepAlive(true)
是保持连接活动的正确方法吗?如果是,应该放在什么位置?是在连接事件(1)中还是直接在回调函数(2)中?
如果不是这样做的方法,那么正确的方法是什么?