簡體   English   中英

如何找出 Node.js 中的 HTTP 服務器有多少連接的客戶端?

[英]How do I find out how many connected clients there are to a HTTP Server in Node.js?

假設我正在運行一個應用程序,它使用 Express 和 Socket.io 偵聽 Node http.Server的同一個實例。

每秒我都想將連接的客戶端總數(HTTP 或 WS)記錄到控制台以進行監控。

setInterval(logConnectedClientInfo, 1000);

如何實現logConnectedClientInfo()方法?


我知道我可以通過exec lsof來做到這一點,但我很感興趣,如果有辦法在Node 中做到這一點?

我找到了答案。 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);
    });
}

這行得通嗎?

server.on('connection', function (socket) {
    activeConnections++;

    socket.on('end', function() {
        activeConnections--;
    });

});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM