聊天消息
对服务端而言,一对一聊天就是将消息从一个 socket 转发到另一个 socket。
更新 main.py:
@@ -17,6 +17,11 @@ async def user_join(sid, 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.event
+async def chat(sid, data):
+ to = data['to']
+ await sio.emit('chat', data, room=to)
data
包含以下字段:
- to: 消息的目标接收者 socket ID。
- from: 发送者的 socket ID。
- msg: 消息内容。
sio.emit()
带有 room
参数可以用于将发出(emit)的事件指定到目标 sockets 或房间。