python一个主程序运行过程中会不断输出信息,用websocket将信息实时发送给前端,给出server.py和client.py并注释
时间: 2023-06-26 12:03:26 浏览: 95
server.py:
```python
import asyncio
import websockets
async def send_info(websocket, path):
# 一些需要实时发送给前端的信息
info = ["Hello", "World", "Python"]
# 循环发送信息
while True:
for i in info:
await websocket.send(i)
await asyncio.sleep(1) # 每隔1秒发送一次信息
start_server = websockets.serve(send_info, "localhost", 8765)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
```
client.py:
```python
import asyncio
import websockets
async def receive_info():
uri = "ws://localhost:8765"
async with websockets.connect(uri) as websocket:
while True:
# 接收信息
info = await websocket.recv()
print(info)
asyncio.get_event_loop().run_until_complete(receive_info())
```
注释:
1. 在 server.py 中,我们使用了 websockets 库来创建一个 WebSocket 服务,用于实时发送信息给前端。
2. 在 send_info 函数中,我们定义了一些需要实时发送给前端的信息,并通过循环发送信息。
3. 在 client.py 中,我们使用了 websockets 库来连接到之前创建的 WebSocket 服务,用于接收实时信息。
4. 在 receive_info 函数中,我们定义了一个死循环来不断接收信息,并打印到控制台上。注意,这里我们没有使用 asyncio.sleep() 函数来暂停程序的执行,因为在接收信息时,程序会自动阻塞等待新的信息到达。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)