socket.io怎么获取当前连接的用户数量和id呢,没有分room默认是哪个room
发布于 8 年前 作者 nasaplayer 14511 次浏览 来自 问答

官方文档好简洁,没看到有说这个的。。。难道是我看漏了

8 回复

当前多少用户,要你自己去统计处理的,room我不太清楚

我直接打印了io.sockets.server,看到id和sockets.就是无法进一步引用了 Server { sockets: Namespace { sockets: { Np4CUYyc2hzYxnL_AAAA: [Object] }, connected: { Np4CUYyc2hzYxnL_AAAA: [Object] }, }, eio: Server { clients: { Np4CUYyc2hzYxnL_AAAA: [Object] }, clientsCount: 1,

},
httpServer: Server {
	_connections: 1, 
},
engine: Server {
	clients: {
		Np4CUYyc2hzYxnL_AAAA: [Object]
	}, 
	clientsCount: 1, 
}

}

用户数量需要累加吧,room我也不清楚

强行测试出来了。哇咔咔 这两种都可以获取连接数量 server_log(‘eio_clients=’+io.eio.clients); server_log(‘engine_clients=’+io.engine.clients);

@nasaplayer 获取当前连接的用户数量 定义一个var users = []; 在 add user (或者别的什么名字)中,判断存在否,不存在就添加到users中 在 disconnect(或者别的什么名字)中,移除用户 用户的数量就是users.length 获取当前用户socket id 看这里 https://github.com/chanywn/OneToOneChat/blob/master/server.js

io = require(‘socket.io’)(server);

io.on(‘connection’, function (socket) { io.eio.clientsCount // 链接数量 socket.adapter.rooms // 所有房间 socket.nsp.connected // 所有链接 })

回到顶部