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

Rus*_*ght 6 node.js

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

if(newUserConnects){
    currentUsers += 1;
}
else if(userDisconnects){
    currentUsers -= 1;
}
Run Code Online (Sandbox Code Playgroud)

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

Jam*_*son 8

你可能想看看使用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--;
    })
})
Run Code Online (Sandbox Code Playgroud)

希望有所帮助!

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

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


Chr*_*ang 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 });
    })
});
Run Code Online (Sandbox Code Playgroud)

client.js (jQuery 1.6.4)

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