WebSocket
sanic在 websockets . Sanic支持websocket版本7和8。
要设置WebSocket,请执行以下操作:
from sanic import Sanic
from sanic.response import json
from sanic.websocket import WebSocketProtocol
app = Sanic("websocket_example")
@app.websocket('/feed')
async def feed(request, ws):
while True:
data = 'hello!'
print('Sending: ' + data)
await ws.send(data)
data = await ws.recv()
print('Received: ' + data)
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8000, protocol=WebSocketProtocol)
或者, app.add_websocket_route
方法可以代替修饰器:
async def feed(request, ws):
pass
app.add_websocket_route(feed, '/feed')
调用WebSocket路由的处理程序时,请求作为第一个参数,WebSocket协议对象作为第二个参数。协议对象具有 send
和 recv
方法分别发送和接收数据。
您可以通过以下方式设置自己的WebSocket配置: app.config
,像
app.config.WEBSOCKET_MAX_SIZE = 2 ** 20
app.config.WEBSOCKET_MAX_QUEUE = 32
app.config.WEBSOCKET_READ_LIMIT = 2 ** 16
app.config.WEBSOCKET_WRITE_LIMIT = 2 ** 16
app.config.WEBSOCKET_PING_INTERVAL = 20
app.config.WEBSOCKET_PING_TIMEOUT = 20
如果在ASGI模式下运行,这些设置不会有任何影响。
发现更多 Configuration
部分。