我在@app.websocket
中使用FastAPI来侦听传入的WebSocket。FastAPI(或其下的Starlette或Uvicorn)是如何实现ping/pong心跳的?这是否可配置?我在文档中根本找不到它。
from fastapi import FastAPI, WebSocket
app = FastAPI()
@app.websocket("/")
def ws(websocket: WebSocket):
pass
fastapi
使用starlette
,在幕后它似乎使用websockets
。websockets.connect
默认使用ping_interval
和ping_timeout
20秒,但我不知道FastAPI中是否使用了该值。
现在可以使用以下两个标志:
--ws-ping-interval <float>
-设置WebSockets ping间隔,以秒为单位。请注意,这只能与默认的websockets
协议一起使用。
--ws-ping-timeout <float>
-设置WebSockets ping超时,以秒为单位。请注意,这只能与默认的websockets
协议一起使用。