使用node.js显示当前用户的数量

时间:2011-12-09 17:02:57

标签: node.js

我以某种方式设法将本地节点服务器拼凑在一起。我想要做的就是当用户连接到服务器时,更新整数。我无法找到在node.js代码中跟踪当前用户的内容。

if(newUserConnects){
    currentUsers += 1;
}
else if(userDisconnects){
    currentUsers -= 1;
}

我对服务器端编程非常陌生(我做了一点php,但没有直接与服务器请求交互)。

2 个答案:

答案 0 :(得分:7)

您可能希望使用socket.io。它为可以轻松计算和更新代码的内容提供了钩子。

我构建了一个执行此操作的应用: http://xjamundx.no.de

源代码在这里:https://github.com/xjamundx/CollabPaintJS/blob/master/server.js

看看我对count变量做了什么。

var count = 0
socket.on('connection', function(client) {
    count++;
    client.broadcast({count:count})
    client.on('disconnect', function(){
        count--;
    })
})

希望有所帮助!

客户端代码在此处:https://github.com/xjamundx/CollabPaintJS/blob/master/public/collabpaint.js

仅供参考,我的应用程序是使用早期版本的socket.io构建的,因此语法略有改变!

答案 1 :(得分:6)

谢谢Jamund,非常简单有效的解决方案。这是我的代码:

server.js (Node-0.6.6)

var io = require('socket.io').listen(7777);
var count = 0

io.sockets.on('connection', function(socket) {
    count++;
    io.sockets.emit('message', { count: count });

    io.sockets.on('disconnect', function(){
        count--;
        io.sockets.emit('message', { count: count });
    })
});

client.js (jQuery 1.6.4)

var socket = io.connect('http://domain.com:7777');
socket.on('message', function (data) {
    console.log(data.count);
});