联系人列表
使用 Map
在内存中保存所有用户信息。
在大规模项目中,你需要使用数据库来存储信息。
更新 app.js:
@@ -10,9 +10,21 @@ const io = new Server(server, {
},
});
+// Use a Map to store all connected users
+const users = new Map();
+
// Handle incoming socket connections
io.on("connection", (socket) => {
- console.log("A user connected", socket.id);
+ socket.on("user-join", (user) => {
+ if (!user.name) {
+ return;
+ }
+ console.log(`User ${socket.id} => ${user.emoji} ${user.name} joined`);
+ users.set(socket.id, { ...user, sid: socket.id });
+
+ // Broadcast to all connected clients
+ io.emit("contacts", Array.from(users.entries()));
+ });
});
// Start the server
io.emit
将最新的联系人列表广播给所有用户。
Loading...
> 此处输出代码运行结果