Использование node.js для отображения количества текущих пользователей - PullRequest
5 голосов
/ 09 декабря 2011

Мне как-то удалось собрать локальный сервер узла.Все, что я пытаюсь сделать, это когда пользователь подключается к серверу, чтобы обновить целое число.Я просто не могу найти то, что отслеживает текущих пользователей в коде node.js.

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

Я очень плохо знаком с программированием на стороне сервера (я сделал немного php, но ничего такогонапрямую взаимодействует с несколькими запросами).

Ответы [ 3 ]

7 голосов
/ 09 декабря 2011

Возможно, вы захотите посмотреть, используя 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

FYI, мое приложениебыл построен с более ранней версией socket.io, поэтому синтаксис немного изменился!

6 голосов
/ 16 января 2012

Спасибо, Джамунд, действительно простое и эффективное решение. Вот мой код:

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);
});
0 голосов
/ 11 июля 2015

Протестировано и работает с:

  • Узел v0.12.2 (сервер)
  • Socket.io v0.9.17 (сервер)
  • jQuery v1.11.3 (клиент)

server.js

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

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

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

client.js

var socket = io.connect('http://localhost:8080');
socket.on('message', function (data) {
    console.log(data.count);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...