假设我正在运行一个应用程序,它使用Express和Socket.io监听节点http.Server
的同一个实例。
每一秒我都想记录连接客户端(HTTP或WS)的总数,以便进行监控。
setInterval(logConnectedClientInfo, 1000);
如何实施方法logConnectedClientInfo()
?
我知道我可以通过exec
lsof
执行此操作但我感兴趣的是,有没有办法在 Node 中执行此操作?
答案 0 :(得分:1)
这会有用吗?
server.on('connection', function (socket) {
activeConnections++;
socket.on('end', function() {
activeConnections--;
});
});
答案 1 :(得分:1)
我找到了答案。 net
模块在名为server.getConnections()
的服务器上有一个方法。节点中的http.Server
(0.10.30)继承自net.Server
。请参阅节点核心中的lib/_http_server.js
:
util.inherits(Server, net.Server);
所以我的方法看起来像:
function logConnectedClientInfo() {
server.getConnections(function(err, count){
if(err) throw err;
console.log(count);
});
}