Nodejs - keepAlive指示使用相同的连接

时间:2017-08-03 14:51:23

标签: node.js keep-alive

我最近在我的nodejs应用程序中实现了一个keepAlive,如下所示:

var keepAliveOptions = {
  keepAlive: true,
  maxSockets: 1,
  keepAliveMsecs: 1000
};

然后在请求中的'agentOptions'下传递'keepAliveOptions'。 在回复中,我能够看到'keepAlive:true'。

但有没有办法检查连接的使用次数?或者如果它被改变了?

另外,是否有建议使用的套接字用于保持活动状态?

提前致谢。

1 个答案:

答案 0 :(得分:1)

request.connection对象(<net.socket>)对于重用套接字的每个请求都是相同的。您可以为此套接字对象的connect事件添加一个侦听器,以计算每个套接字的使用次数。

这是一个基本示例,如果您在应用程序中使用http模块,则相关:

server.on("connection", function(connection) {
  connection.number_of_times_used = 0;
});

server.on("request", function(request) {
  request.connection.number_of_times_used++;
  console.log("Request used " + request.connection.number_of_times_used + " times")
});

回答您的上一个问题:没有建议使用的套接字数量,因为每个应用程序将有不同的要求和不同的用户数。在你的情况下,我会坚持1,直到你发现任何性能问题,然后你可以相应地调整maxSockets值。