我正在使用 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 服务器/计算机上?
谢谢你