添加用户在线状态更新

This commit is contained in:
2026-09-24 10:31:27 +08:00
parent 74ed1535ed
commit 4c3b99edac
2 changed files with 46 additions and 15 deletions
+24 -6
View File
@@ -1,28 +1,46 @@
const connections = new Map();
const onlineUsers = new Map();
// 保存用户连接
function addConnection(username, ws) {
connections.set(username, ws);
onlineUsers.set(username, ws);
console.log(`用户 ${username} 已连接`);
console.log("当前在线用户:", [...connections.keys()]);
console.log("当前在线用户:", [...onlineUsers.keys()]);
}
// 获取用户连接
function getConnection(username) {
return connections.get(username);
return onlineUsers.get(username);
}
// 删除用户连接
function removeConnection(username) {
connections.delete(username);
onlineUsers.delete(username);
console.log(`用户 ${username} 已断开`);
console.log("当前在线用户:", [...connections.keys()]);
console.log("当前在线用户:", [...onlineUsers.keys()]);
}
// 获取所有在线用户
function getOnlineUsers() {
return Array.from(onlineUsers.keys());
}
// 广播所有在线用户
function broadcast(data) {
const message = JSON.stringify(data);
for (const ws of onlineUsers.values()) {
if (ws.readyState === WebSocket.OPEN) {
ws.send(message);
}
}
}
module.exports = {
addConnection,
getConnection,
removeConnection,
getOnlineUsers,
broadcast
};