小编Kri*_*aps的帖子

如何正确退订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
}
Run Code Online (Sandbox Code Playgroud)

socket.leave(hash)什么都不做-套接字仍然接收发送到hash房间的消息。

附带说明-如果我与客户端Anna和客户端Bob相连-都接收消息,但是如果我与客户端Bob重新连接-Bob无法将消息发送给Anna。

在某处有完整的套接字io API文档(因为我找不到socket.leave(room)示例)?

编辑:知道了!套接字IO使用斜杠节省了房间句柄,因此您必须使用socket.leave('/'+hash)

javascript websocket node.js socket.io

4
推荐指数
2
解决办法
7879
查看次数

标签 统计

javascript ×1

node.js ×1

socket.io ×1

websocket ×1