网站搜索

javascript - 使用 node.js 监控已连接的客户端


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

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

答案#1

试试这个:

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

每当有人连接或断开连接时,它都会将连接用户的数组打印到控制台

答案#2

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

要持久存储用户,您可以使用 'dirty' 模块。如果您需要更高级的存储,可以使用 MongoDB、Riak 或者传统的 SQL 数据库(PostgreSQL 和 MySQL),不过我建议从 dirty 或 Riak 开始,以学习现代方法(即键值存储、内存数据库、水平扩展、面向文档和其他 NoSQL 数据库)。