我现在正在使用房间,但我认为我使用它们的方式并不实用。这是我代码的一部分。
// Add clients that are to be notified to the users room.
for(var c in clients)
{
if(_.indexOf(data.notify, clients[c].id) != -1)
{
clients[c].socket.join(data.user_id);
}
}
// Emit to all that are now in the room.
io.sockets.in(data.user_id).emit('notification', data);
// Remove everyone from this users room so it's free for the next notification.
for(var c in clients)
{
if(clients[c].id in data.notify)
{
clients[c].socket.leave(data.user_id);
}
}
因此,您可以看到我将正确的客户端添加到房间,该房间是已更新内容的用户的ID。然后,当我向组发出通知后,我再次从房间中删除所有客户端以保持其免费。
有没有更好的方法来解决这个问题?