联系人列表
使用 dict
在内存中保存所有用户信息。
在大规模项目中,你需要使用数据库来存储信息。
更新 main.py:
@@ -3,7 +3,20 @@ import socketio
sio = socketio.AsyncServer(async_mode='asgi', cors_allowed_origins='*')
app = socketio.ASGIApp(sio)
+users = {}
+
@sio.event
async def connect(sid, environ):
print('A user connected:', sid)
+
+
+@sio.on('user-join')
+async def user_join(sid, user):
+ if 'name' not in user:
+ return
+ print(f"User {sid} => {user['emoji']} {user['name']} joined")
+ users[sid] = {**user, 'sid': sid}
+ print(list(users.items()))
+ # Broadcast to all connected clients
+ await sio.emit('contacts', list(users.items()))
sio.emit
将最新的联系人列表广播给所有用户。
Loading...
> 此处输出代码运行结果