# Websockets
Sanicは、websockets (opens new window)の上に使いやすい抽象化を提供します。
# Routing
Websocketハンドラーは、通常のハンドラと同様にルーターに接続できます。
async def feed(request, ws):
pass
app.add_websocket_route(feed, "/feed")
@app.websocket("/feed")
async def feed(request, ws):
pass
# Handler
通常、Websocketハンドラはループを開きたいと思うでしょう。
その後、ハンドラーに注入された2番目のオブジェクトで send()
メソッドと recv()
メソッドを使用できます。
この例は、受信したクライアントメッセージにエコーバックする単純なエンドポイントです。
@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)
# Configuration
詳細については、構成セクションを参照してください。
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
← Streaming Versioning →