是否有任何内置方法可以找出连接到使用Socket.io的Node.js服务器中特定命名空间的用户数?
答案 0 :(得分:2)
可以有更好的方法,但这应该有效:
Object.keys(io.of('/chat').manager.handshaken).length //handshaken clients
Object.keys(io.of('/chat').manager.connected).length //connected clients
Object.keys(io.of('/chat').manager.open).length //open clients
Object.keys(io.of('/chat').manager.closed).length //closed clients
您可以将/chat
替换为您的命名空间。命名空间必须以/
开头。这些是socket.io对象io
中的对象,它们存储连接的用户(执行console.log(io.of('/chat').manager.connected)
以查看对象)。
更简单的方式io.of('/chat').clients().length
。请参阅io.of('/chat').clients()
以获取所有已连接的用户详细信息。