websockets 6.0 documentation 翻译

相关链接:https://websockets.readthedocs.io/en/stable/intro.html#python-lt-36

开始

要求

websockets 需要 3.4 或者以上版本的 Python,若可能应使用最新版本。为了获得最佳体验,应该从3.6 以上版本开始。asyncio 在Python3.4 和 3.6 之间产生了有趣的改进。

安装

pip install websockets

基础示例

以下是一个websocket 的服务端示例:它从客户端读取姓名,发送问候,然后关闭连接。
#!/usr/bin/env python

# WS server example

import asyncio
import websockets

async def hello(websocket, path):
    name = await websocket.recv()
    print(f"< {name}")

    greeting = f"Hello {name}!"

    await websocket.send(greeting)
    print(f"> {greeting}")

start_server = websockets.serve(hello, 'localhost', 8765)

asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()

在服务器端,websockets 为每个websocket连接执行一次协程处理程序 hello,并且在该程序返回的时候关闭连接。
这是一个相应的websoclet客户端的示例:

#!/usr/bin/env python

# WS client example

import asyncio
import websockets

async def hello():
    async with websockets.connect(
            'ws://localhost:8765') as websocket:
        name = input("What's your name? ")

        await websocket.send(name)
        print(f"> {name}")

        greeting = await websocket.recv()
        print(f"< {greeting}")

asyncio.get_event_loop().run_until_complete(hello())

使用 connect() 作为异步的上下文管理器可以确保在退出 hello 协程之前关闭连接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值