使用WebSocket进行通信的简易Demo

一、后端间通信

server.py

import asyncio
import websockets
import time
 


""" 每隔2s给客户端发送一条消息 """
async def echo(websocket, path):
    while True:
        now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) 
        await websocket.send(now) 
        await asyncio.sleep(2)
 

if __name__ == '__main__':
    start_server = websockets.serve(echo,'127.0.0.1',5000) # 改为你自己的地址
    asyncio.get_event_loop().run_until_complete(start_server)
    asyncio.get_event_loop().run_forever()

 

client.py

import asyncio
import websockets
 
 
async def hello(uri):
    async with websockets.connect(uri) as websocket:
        while True:
            recv_text = await websocket.recv()  # 接收消息
            print(recv_text)
         
 
if __name__ == '__main__':
    asyncio.get_event_loop().run_until_complete(
        hello('ws://127.0.0.1:5000')) # 改为你自己的地址
  1. pip安装websockets
  2. 先启动server.py,再启动client.py
  3. 效果:

使用WebSocket进行通信的简易Demo_第1张图片

 

 

二、后端与前端通信

server.py 不变;client使用html页面。

 

2.1 基础版:前端实时获取数据,并堆叠式输出

client.html



    
        WebSocket demo
    
    
        
    

启动server.py后再点开页面,效果:

使用WebSocket进行通信的简易Demo_第2张图片

 

2.2 扩展版:前端某组件实时获取数据,并更新值

client.html





    
    页面



    
    
    

启动server.py后再点开页面,效果:标签位置实时更新server传来的值。当然,如果任务需要,也可以实时更新图片

 

参考: https://websockets.readthedocs.io/en/stable/intro.html

 

 

 

你可能感兴趣的:(使用WebSocket进行通信的简易Demo)