0
我有一个Node, Express, and Websockets
聊天应用程序。聊天室中当前用户的用户名存储为Redis
。从我在SMEMBERS 'onlineUsers'
键入redis-cli
,我找回所有的用户目前在房间列表:Redis与节点
127.0.0.1:6379> smembers 'onlineUsers'
1) "jackson"
2) "bubba yump"
3) "dog"
4) "rumba"
5) "buba"
在我的主要应用javascript
文件我有一个方法来获得当前用户这样我就可以显示出来在页面上:
var showCurrentUsers = function(){
$('#list_of_users').empty();
$.getJSON('getUsers', function(data){
console.log(data)
for (var i in data){
$('#list_of_users').append("<li> User: "+data[i]+"</li>")
}
});
}
在我Node
服务器上的文件我也有匹配的路由,但db.smembers
保持返回true
,而不是用户的列表。
app.get('/getUsers', function(req,res){
res.send(getOnlineUsers());
});
// REDIS DATA
var getOnlineUsers = function(){
return db.smembers("onlineUsers")
}
,这里是其中的用户名是最初发布到数据库:
client.on("setUsername", function(user){
pub.publish("chatting","A new user in connected:" + user);
db.sadd("onlineUsers",user);
}
);
我知道用户名是否正确张贴到数据库中,我可以从redis-cli
访问他们,但我我不知道为什么我的JSON调用返回true
而不是列表。
作为一个说明了'db.sadd(“onlineUsers”,用户);'可以用一个回调,如果你需要确认写入成功,如:'db.sadd(“onlineUsers”被写入,用户功能(err){if(err){handle(err);}});' – generalhenry