0

我正在使用 socket.io 制作一个聊天应用程序,我需要在其中显示当前用户列表。到目前为止,它在显示当前用户列表的情况下工作正常

我正在使用此代码来维护用户列表

usernames[socket.id] = name;//where name is the name of the user

然后在断开连接时,我再次从列表中删除该用户

delete usernames[socket.id];

但是,我对这种方法的问题是假设有三个用户 a、b 和 c

现在用户列表将在连接事件中填充,就像这样

 io.sockets.on('connection', function(socket) { 

    ...

    socket.on('register', function(name) {

    usernames[socket.id] = name;

用户列表将类似于“a,b​​ 和 c”

但是,我想要的是,对于用户“a”,列表应该显示“b and c”,对于“b”,它应该是“a and c”,对于“c”,它应该是“a and b”。

我还考虑基于一些变量在客户端删除它,该变量存储正在查看它的用户的名称,但对于这个聊天,多个用户可以有相同的名称。因此,如果假设所有三个名称都为“a”,那么它将删除所有三个而不是仅从列表中删除一个名称。

....我想我对这个没有想法。请帮我在socket.io中实现它

4

1 回答 1

1

您的问题实际上与 Socket.IO 无关。显示用户列表时,根本不显示当前用户!

for (userIndex in users) {
    if (users[userIndex].id !== currentUser.id) {
        // Add user to displayed user list
    }
}
于 2012-11-24T20:00:40.710 回答