[英]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.