1
我使用socket.io和Redis以及node.js - 下面的代碼。使用redis與socket.io - 如何更新每個客戶端?
我在這裏肯定很愚蠢,但我不明白爲什麼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);
});
});
我是否需要爲每個客戶建立內部io.sockets.on
一個單獨的Redis實例 - 如果是這樣,將這個規模有多大?
否則,我做錯了什麼?
也許你會阻止redis連接? – thejh
風格提示:您可以替換'if(err){console.log(err);返回; }'用'if(err)return console.log(err);' – thejh
@thejh謝謝:) – Richard