我使用nodejs(0.8.15)和socket.io(0.9) 我正在创建与房间和名称空间的聊天。所以,问题是:
1)每次用户进入某个房间时,他们都需要查看此房间的在线用户列表。
在wiki https://github.com/LearnBoost/socket.io/wiki/Rooms上我读到我可以获得客户端套接字ID io.sockets.clients('room')
的列表,但是用户有昵称,我将它们存储起来:
var io = io.listen(server);
var chat = io.of('/chat').on('connection', function (socket) {
{
socket.on('user-entered-to-chat', function(nickname) {
// how i store nickname
socket.nickname = nickname;
...
// i need do something here or above to make array of nicknames
socket.emit('get-users-list`, array);
}
});
问:如何访问每个人的套接字以获取昵称等信息?
当然,我可以在数据库中使用socket.id保存昵称,但我不想这样做。
2)此外,我可以在代码顶部的某处放置var nicknames=[];
,但如果我在一个房间有500多名用户在线 - 这是一个好方法吗?它能用500 +?
我认为chat
变量适用于所有用户,我试图在var chat.nicknames=[]
中写入所有昵称,但它不起作用。它对io.sockets.nicknames = []
也不起作用。每个用户都有自己的chat
。
3)哪里存储有关套接字的所有信息/数据?例如,房间中的客户列表。在我的nodejs服务器/计算机上?
谢谢