Я использую socket.io и Redis вместе с node.js - код приведен ниже.
Я определенно глуп, но не могу понять, почему событие Redis срабатывает только с первымПользователь, который подключается.
Я снова вижу консольное сообщение NEW CONNECTION
для каждого пользователя, открывающего страницу, но я вижу только консольное сообщение REDIS
с первым пользователем.
io = io.listen(app);
client.flushall();
io.sockets.on('connection', function (socket) {
// Update Redis with information about this connection.
console.log('*************** NEW CONNECTION');
client.multi()
.hmset("user:" + user_id, "nickname", nick)
.sadd("chatroom:" + room_id, user_id)
.exec();
// Check that the Redis record was set.
client.smembers("chatroom:" + room_id, function (err, data) {
if (err) { console.log(err); return; }
console.log('REDIS CALL FOR chatroom:' + room_id, data);
});
});
Нужно ли мнесоздать отдельный экземпляр Redis внутри io.sockets.on
для каждого клиента - и если да, будет ли это масштабироваться?
Или иначе, что я делаю не так?