Chat Messages
To the server side, one-on-one chat is basically to forward messages from one socket to another.
Update 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
has below fields:
- to: destination socket ID of the incoming message.
- from: socket ID of the sender.
- msg: message content.
sio.emit()
with a room
parameter allows you to target specific sockets or rooms when emitting events.