我一直在努力寻找一种有效的方法来获得socket.io中连接到房间的客户数量。 我被建议调查这个帖子: How to get room's clients list in socket.io 1.0但是,除了检查每个连接插座及其房间以便能够显示单个房间的内容之外,这个线程中目前没有任何解决方案可用。
因此,我需要再次询问:在socket.io的房间中获取(客户)客户端的(最有效)方式是什么?
答案 0 :(得分:0)
io.nsps[yourNamespace].adapter.rooms[roomName] // default namespace is '/'
返回具有布尔值的客户端对象或undefined
。在大多数情况下,您可以使用
Object.keys(io.nsps[yourNamespace].adapter.rooms[roomName]).length
但只有在连接了至少一个客户端时才会起作用,因为返回了未定义的内容。
如果您没有使用任何特定的命名空间,则可以改为使用io.sockets.adapter.rooms[roomName]
。
默认情况下,当客户端断开连接时,它会离开房间,这种方式对我有用。