FastAPI websocket ping/pong 超时
FastAPI websocket ping/pong timeout
我正在使用带有 @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
默认使用 20 秒的 ping_interval
和 ping_timeout
,但我不知道 FastAPI 是否使用了它。
您现在可以使用以下 2 个标志:
--ws-ping-interval <float>
- 设置 WebSockets ping 间隔,以秒为单位。请注意,这只能用于默认的 websockets
协议。
--ws-ping-timeout <float>
- 设置 WebSockets ping 超时,以秒为单位。请注意,这只能用于默认的 websockets
协议。
我正在使用带有 @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
默认使用 20 秒的 ping_interval
和 ping_timeout
,但我不知道 FastAPI 是否使用了它。
您现在可以使用以下 2 个标志:
--ws-ping-interval <float>
- 设置 WebSockets ping 间隔,以秒为单位。请注意,这只能用于默认的websockets
协议。--ws-ping-timeout <float>
- 设置 WebSockets ping 超时,以秒为单位。请注意,这只能用于默认的websockets
协议。