如何在Node.js中找出HTTP服务器连接的客户端数量?

时间:2014-08-10 13:51:00

标签: node.js http

假设我正在运行一个应用程序,它使用Express和Socket.io监听节点http.Server的同一个实例。

每一秒我都想记录连接客户端(HTTP或WS)的总数,以便进行监控。

setInterval(logConnectedClientInfo, 1000);

如何实施方法logConnectedClientInfo()


我知道我可以通过exec lsof执行此操作但我感兴趣的是,有没有办法在 Node 中执行此操作?

2 个答案:

答案 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);
    });
}