用python的websocket实现一对一聊天例子
时间: 2023-10-18 10:04:39 浏览: 38
好的,以下是一个使用 Python WebSocket 实现一对一聊天的例子:
```python
import asyncio
import websockets
# 用字典存储在线的用户
users = {}
async def register(websocket, username):
# 将用户添加到在线用户列表中
print(f'{username} 已上线')
users[username] = websocket
async def unregister(username):
# 将用户从在线用户列表中移除
print(f'{username} 已下线')
del users[username]
async def send_message(recipient, message):
await users[recipient].send(message)
async def handler(websocket, path):
# 接收并处理新连接
username = await websocket.recv()
await register(websocket, username)
try:
while True:
# 接收消息并将其发送给指定的用户
message = await websocket.recv()
recipient, message = message.split('|')
await send_message(recipient, f'{username}: {message}')
finally:
# 断开连接时,将当前用户移除
await unregister(username)
asyncio.get_event_loop().run_until_complete(
websockets.serve(handler, 'localhost', 8000))
asyncio.get_event_loop().run_forever()
```
这是一个简单的聊天服务器实现,使用了 Python WebSocket 库来处理连接和消息发送。用户发送的消息会带有接收者的用户名,在服务器端会将消息发送给指定用户。