Вид источника: HTTP: //socket.io
я есть внутренний цикл для каждого сокета:
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
комната.
В качестве дополнительного примечания - если я соединяюсь с клиентом Анной и клиентом Бобом - оба получают сообщения, но если я повторно соединяюсь с клиентом Бобом - Боб не может отправлять сообщения Анне.
Есть ли где-нибудь полная документация по API сокетов io (поскольку я не смог найти примеры для socket.leave (room))?
РЕДАКТИРОВАТЬ: Есть! Socket IO экономит комнатные ручки с косой чертой, поэтому вы должны использоватьsocket.leave('/'+hash)