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 @   mlto  阅读(668)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示