Sanic除了利用Python原生的asyncio等异步特性,还可以方便地实现websocket接口。

关于WebSocket的知识点重温,可参考:

Sanic实现一个简单的WebSocket Server,接收到什么就返回什么:

@app.websocket('/feed')
async def feed(request, ws):
    while True:
        data = await ws.recv()
        await ws.send(data)

Demo只有简单的5行代码。

测试websocket可以用在线的测试工具,也可以用命令行工具,如wscat,推荐用命令行,更方便,也更通用。

➜  ~ wscat -c ws://localhost:8000/feed
connected (press CTRL+C to quit)
> Hi, there
< Hi, there
> Hello world.
< Hello world.
>