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

时间:2011-08-10 07:08:14

标签: javascript node.js http monitoring

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

我如何跟踪登录用户(客户端)并将他们的ID存储在node.js服务器上?

3 个答案:

答案 0 :(得分:6)

试试这个:

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);

每次有人连接/断开连接时,它都会打印出来以控制连接用户的数组

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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