如何使用套接字从房间中的客户端获取数据?

时间:2012-12-02 01:34:43

标签: node.js sockets networking socket.io chat

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

谢谢

0 个答案:

没有答案