在 Socket.IO 中,获取连接的套接字/客户端列表可以通过以下方法实现:
- 在服务器端,创建一个 Socket.IO 实例:const app = require('express')();
const http = require('http').createServer(app);
const io = require('socket.io')(http);const connectedSockets = [];
io.on('connection', (socket) => {
connectedSockets.push(socket);
console.log('客户端已连接:', socket.id);
socket.on('disconnect', () => {
const index = connectedSockets.findIndex((s) => s.id === socket.id);
connectedSockets.splice(index, 1);
console.log('客户端已断开连接:', socket.id);
});
});function getConnectedSockets() {
return connectedSockets;
}io.on('connection', (socket) => {
// ...
// 获取当前连接的客户端列表
const clients = getConnectedSockets();
console.log('当前连接的客户端列表:', clients);
});
- 使用
connection
事件监听客户端连接,并将连接的客户端存储在一个数组中: - 创建一个函数,返回当前连接的客户端列表:
- 使用
getConnectedSockets()
函数获取连接的客户端列表:
通过以上方法,您可以在 Socket.IO 中获取连接的套接字/客户端列表。请注意,这种方法仅适用于同一个 Socket.IO 实例的客户端连接。如果您的应用程序使用了多个实例,您可能需要使用其他方法来共享客户端连接列表。