Kri*_*aps 4 javascript websocket node.js 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)
socket.io中的房间是隐式创建和隐式删除的。基本上,当它们为空时,它们会被自动删除。
是的,前面/被添加到房间内部的名字,但你并不需要添加这去除房间的插座。
console.log(io.sockets.manager.rooms)每当创建房间时尝试触发,以查看内部发生的情况。
mik*_*eil -1
有点切线,但要回答关于完整的 socket.io 文档的问题部分:不完全是,但是,如果您在socket.io 的主页上查看源代码,您可以找到一些稀疏的文档(查看源代码并按 CTRL +F 表示“房间”)。我已经不得不这样做好几次了。那里没有关于离开房间的内容,但有一些一般性的解释。
查看源码:http://socket.io
| 归档时间: |
|
| 查看次数: |
7879 次 |
| 最近记录: |