我对socket.io有点问题。我想更新指定房间的用户。我按照本教程添加了一个“用户列表”(http://psitsmike.com/2011/10/node-js-and-socket-io-multiroom-chat-tutorial/),当您更换房间时,您的昵称应从列表中消失并更新新用户/用户
通过做这样的事情可以吗?
usernames = {};
var clients = io.sockets.usernames(socket.room);
然后致电:
io.sockets.emit('updateusers', clients);
答案 0 :(得分:0)
这个想法是当你进入或离开它时管理自己的列表,房间有自己的套接字列表。 所以你想要做的是,当用户离开房间时 - 向该房间广播消息:
socket.broadcast.to('room1').emit('userRemove', 'data');
来自该房间的套接字应该在接收时处理此消息,以便从列表中删除实际记录(如果这是web applciation,则可以是html列表),因为在服务器上它不再在房间中。
这称为同步。