5

我正在使用 FastAPI@app.websocket来监听传入的 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_intervalping_timeout,但我不知道这是否在 FastAPI 中使用。

4

1 回答 1

2

您现在可以使用以下 2 个标志:

  1. --ws-ping-interval <float>- 设置 WebSockets ping 间隔,以秒为单位。请注意,这只能与默认websockets协议一起使用。
  2. --ws-ping-timeout <float>- 设置 WebSockets ping 超时,以秒为单位。请注意,这只能与默认websockets协议一起使用。
于 2021-09-13T19:28:56.963 回答