繁体   English   中英

如何在nodejs中跟踪sockets?

[英]How to keep track of sockets in nodejs?

我正在尝试跟踪在我的服务器中建立的所有 tcp 连接并将其存储在一个数组中。

当某个连接关闭时,我的问题就开始了,在这种情况下,我应该从我的数组中删除它,但我做不到。 谁能帮我? 如何删除存储在我的数组中的套接字?

var net = require("net");

function Server(port) {
    var self = this;

    this.conections = [];

    this.server = net.createServer(function(socket) {     
        self.conections.push(socket);   //storing the socket in the array             
    })

    this.server.listen(port);
    console.log("TCP Server created on port: "+ port);
}

module.exports = Server;

想了一会儿,我意识到我可以给每个socket一个ID,这样我可以监控一个数组中的每个新连接,并在连接丢失的情况下删除它。

var net = require("net");

function Server(port) {
    var self = this;

    this.connections = [];
    this.connectionsId = 0;

    this.server = net.createServer(function(socket) {
        socket.id = self.connectionsId++;    
        self.connections.push(socket);   //storing the socket in the array             
    })

    //Event that is always trigger when the connection is ended
    socket.on('close', function() {
         self.connections = self.connections.filter(function(conn) {
              return conn.id !== socket.id;
         });
    });

    this.server.listen(port);
    console.log("TCP Server created on port: "+ port);
}

module.exports = Server;

希望它可以帮助某人!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM