Sanic实现WebSocket
Sanic除了利用Python原生的asyncio等异步特性,还可以方便地实现websocket接口。
关于WebSocket的知识点重温,可参考:
- WebSocket 是什么原理?为什么可以实现持久连接?
- Socket 与 WebSocket
- WebSocket与消息推送
- WebSocket(1)– WebSocket API简介
- WebSocket(2)–为什么引入WebSocket协议
- WebSocket(3)– WebSocket协议简介
- WebSocket(4)– WebSocket与TCP、Http的关系
- WebSocket(5)– WebSocket Server
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.
>