У меня есть внутренний цикл для каждого сокета:
if (!chat.room.list[hash]) { // room has expired
socket.leave(hash);
delete chat.user.list[socket.store.data.id].rooms[hash];
delete socket.store.data.inRooms[hash]; // delete room hash from user store
}
socket.leave(hash)
ничего не делает - сокет все еще принимает сообщения, отправленные в hash
комнату.
Как примечание стороны - еслиЯ соединяюсь с клиентом Анной и клиентом Бобом - оба получают сообщения, но если я снова соединяюсь с клиентом Бобом - Боб не может отправлять сообщения Анне.примеры socket.leave (комната)?
РЕДАКТИРОВАТЬ: Понял!Socket IO сохраняет комнатные ручки с косой чертой, поэтому вы должны использовать socket.leave('/'+hash)