安装 pip install websockets
分为客户端和服务端两部分
服务端一般与异步的库一起用 因为客户端不可能只服务一个客户 所以要用异步处理多个客户
以asyncio示例
from websockets.server import serve import websockets import asyncio async def start(ws,path): # 第一个参数是websocket对象 第二个基本用不到 可以不写 后面回调这个函数的时候 参数会自动传 clickMsg = await ws.recv() # 接收客户端的消息 几个常用的方法 send() 发送数据 close() 关闭连接 await的作用是挂起当前任务 等待后面的代码执行完成 这之间软件回去执行其他异步任务 print(clickMsg) await ws.send('ok') await ws.close() async def wsmain(): # websocket主函数 async with serve(start,'0.0.0.0',12333): # 解释 with serve 开启监听 第一个参数是连接后要执行的函数 第二个是监听的地址 0.0.0.0 表示所有地址 也可以写本机公网ip 第三个参数是坚挺的端口 while 1: # 解释 后面要执行这个函数 如果不加这个 执行完监听就完了 加这个死循环是要一直监听 不让服务关闭 asyncio.sleep(1) asyncio.run(wsmain()) # 运行
客户端
from websockets.sync.client import connect def hi(): with connect('ws://localhost:12333') as ws: ws.send('connect') serverMessage = ws.recv() print(serverMessage) hi()
有时候我们想要客户端断开连接运行一些代码 怎么写呢 或者说监听连接人数 有一个断开的就减一
可以在服务端监听连接的地方 也就是with serve的地方 加一个try 然后捕获相应的错误
标签:python,await,ws,import,监听,websockets,客户端 From: https://www.cnblogs.com/mltooo/p/17867610.html