python做一个多用户访问的websocket服务端
时间: 2023-11-10 12:14:50 浏览: 94
好的,下面是一个简单的Python多用户访问的WebSocket服务端的实现:
```python
import asyncio
import websockets
# 存储所有连接的websocket客户端
clients = set()
# 处理客户端连接
async def handle_client(websocket, path):
# 将新连接的客户端加入到集合中
clients.add(websocket)
try:
# 循环等待客户端发送消息
async for message in websocket:
# 将消息广播给所有客户端
await asyncio.gather(*[client.send(message) for client in clients])
finally:
# 客户端关闭连接时,将其从集合中移除
clients.remove(websocket)
# 启动WebSocket服务器
async def server():
async with websockets.serve(handle_client, "localhost", 8765):
await asyncio.Future() # 一直等待,直到服务器关闭
# 启动服务器
asyncio.get_event_loop().run_until_complete(server())
```
使用`websockets`库创建WebSocket服务器,将所有连接的客户端存储在`clients`集合中,处理客户端连接的`handle_client`函数中,将新连接的客户端加入到集合中,并循环等待客户端发送消息,将消息广播给所有客户端。当客户端关闭连接时,将其从集合中移除。最后,使用`asyncio`库启动服务器。
注意:这只是一个简单的示例,实际开发中需要考虑更多的细节和安全问题。