python websocket 广播
时间: 2024-03-21 07:37:07 浏览: 37
Python的WebSocket广播是一种实现实时通信的技术,它基于WebSocket协议,可以在客户端和服务器之间建立持久的双向连接。通过WebSocket广播,服务器可以向多个客户端同时发送消息,实现实时的数据传输和通知。
在Python中,可以使用第三方库来实现WebSocket广播,比较常用的有`websockets`和`socketio`等。下面是一个使用`websockets`库实现WebSocket广播的简单示例:
1. 首先,安装`websockets`库:
```
pip install websockets
```
2. 在服务器端,创建一个WebSocket服务器,并监听客户端的连接请求:
```python
import asyncio
import websockets
# 客户端列表
clients = set()
# 处理客户端连接请求的函数
async def handle_client(websocket, path):
# 将新连接的客户端添加到列表中
clients.add(websocket)
try:
while True:
# 接收客户端发送的消息
message = await websocket.recv()
# 广播消息给所有客户端
for client in clients:
await client.send(message)
finally:
# 客户端断开连接时,从列表中移除
clients.remove(websocket)
# 启动WebSocket服务器
start_server = websockets.serve(handle_client, 'localhost', 8765)
# 运行事件循环
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
```
3. 在客户端,创建一个WebSocket连接,并发送消息给服务器:
```python
import asyncio
import websockets
# 连接WebSocket服务器
async def connect():
async with websockets.connect('ws://localhost:8765') as websocket:
while True:
# 发送消息给服务器
message = input("请输入消息:")
await websocket.send(message)
# 运行事件循环
asyncio.get_event_loop().run_until_complete(connect())
```
这样,当有多个客户端连接到服务器时,服务器会将接收到的消息广播给所有客户端。