1

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

谢谢你

4

0 回答 0