Javascript 使用node.js监视连接的客户端

Javascript 使用node.js监视连接的客户端,javascript,node.js,http,monitoring,Javascript,Node.js,Http,Monitoring,我正在用node.js服务器构建一个网站 如何跟踪登录用户(客户端)并将其id存储在node.js服务器上?您可以使用connect或express NPM模块(express是connect的扩展)。Connect(因此express)支持基于cookie的会话。Express是一个非常轻量级和流行的框架 要持久存储用户,可以使用“脏”模块。如果您需要更高级的存储—您可以使用MongoDB、Riak甚至普通的旧SQL数据库(postgreSQL和mySQL),但是我建议从dirty或Riak开

我正在用node.js服务器构建一个网站


如何跟踪登录用户(客户端)并将其id存储在node.js服务器上?

您可以使用connect或express NPM模块(express是connect的扩展)。Connect(因此express)支持基于cookie的会话。Express是一个非常轻量级和流行的框架


要持久存储用户,可以使用“脏”模块。如果您需要更高级的存储—您可以使用MongoDB、Riak甚至普通的旧SQL数据库(postgreSQL和mySQL),但是我建议从dirty或Riak开始学习现代方法(即键值存储、内存数据库、水平可扩展性、面向文档和其他noSQL数据库).

如果使用express,则应设置会话中间件app.use(express.cookieParser())和app.use(express.session({secret:'some secret')。默认情况下,它存储在内存中,但您可以使用数据库存储会话。有关详细信息,请参阅。 是吗?

试试这个:

var http=require('http');

var connected_users={};

var server=http.createServer(function(req,res){
    res.end('hi');
});

server.on('connection',function(socket){
    socket.__fd=socket.fd;
    connected_users[socket.__fd]=socket.remoteAddress;
    console.log(connected_users);
    socket.on('close',function(){
        delete connected_users[socket.__fd];
        console.log(connected_users);
    }); 
});
server.listen(8080);

每次有人连接/断开连接时,它会打印出来以控制连接的用户阵列。问题是,我想在阵列中为新连接的客户端存储一个随机id,当他们断开连接时,该id将从该阵列中删除。HTTP是无连接协议。因此,您无法跟踪用户何时断开连接。上面的代码用于ess,因为大多数用户会在连接后立即断开连接。有没有办法做到这一点?这就是我所需要的:D谢谢