我會爲每個插座內部循環:如何從一個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
房的消息。
作爲一個側面說明 - 如果我的客戶安娜和客戶端連接鮑勃 - 無論是接收消息,但如果我的客戶重新鮑勃 - 鮑勃無法發送消息給安娜。
有沒有什麼地方全套接字IO API文檔(因爲我無法找到socket.leave(室)的例子)?
編輯: 明白了! Socket IO使用斜槓節省了房間句柄,因此您必須使用socket.leave('/'+hash)
您應該添加您的解決方案作爲一個「答案」,所以這不上來爲「懸而未決」 – timoxley