我最近在我的nodejs应用程序中实现了一个keepAlive,如下所示:
var keepAliveOptions = {
keepAlive: true,
maxSockets: 1,
keepAliveMsecs: 1000
};
然后在请求中的'agentOptions'下传递'keepAliveOptions'。 在回复中,我能够看到'keepAlive:true'。
但有没有办法检查连接的使用次数?或者如果它被改变了?
另外,是否有建议使用的套接字用于保持活动状态?
提前致谢。
答案 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值。