отслеживать подключенных клиентов с помощью node.js - PullRequest
5 голосов
/ 10 августа 2011

Я строю веб-сайт с сервером node.js.

Как мне отслеживать зарегистрированных пользователей (клиентов) и хранить их идентификаторы на сервере node.js?

Ответы [ 3 ]

6 голосов
/ 10 августа 2011

Попробуйте это:

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

Он выводит на консоль массив подключенных пользователей каждый раз, когда кто-то подключается / отключается

0 голосов
/ 10 августа 2011

Если вы используете экспресс, вам следует установить промежуточное программное обеспечение сеанса app.use (express.cookieParser ()) и app.use (express.session ({secret: 'some secret'}). По умолчанию он сохраняется в памяти, ноВы можете использовать базу данных для хранения сеансов. Для получения более подробной информации смотрите Экспресс-руководство . Это оно?

0 голосов
/ 10 августа 2011

Вы можете использовать подключаемые или экспрессные модули NPM (экспресс является расширением подключения).Connect (и, следовательно, экспресс) имеет поддержку сеансов на основе файлов cookie.Express - это очень легкий и популярный фреймворк.

Для постоянного хранения пользователей вы можете использовать «грязный» модуль.Если вам нужно более продвинутое хранилище - вы можете использовать MongoDB, Riak или даже обычные старые базы данных SQL (postgreSQL и mySQL), однако я предлагаю начать с «грязного» или «riak», чтобы изучить современный подход (а именно хранилища значений ключей,базы данных памяти, горизонтальная масштабируемость, документно-ориентированные и другие базы данных noSQL).

...