python的websockets库

安装 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') # 发送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()

 

posted @ 2023-11-30 16:09  mlto  阅读(453)  评论(0编辑  收藏  举报