Как закрыть сеанс, если получено слишком много времени?
Я использовал starlette framework
Я пишу маршрут ниже:
@app.websocket_route("/wss_back", name="run_in_backend")
async def wss_back(session: WebSocket):
await session.accept()
data = await session.receive_json()
await run_code_in_subprocess(session)
await session.send_json({"msgType": 1, "data": "good"})
await session.close(1000)
Но я не могу убедиться, что сеанс клиента отправит сообщение на сервер wss.
Итак, я хочу установить время ожидания приема? Как я могу этого добиться?
Если await websocket.receive_json()
чем 5 секунд, закройте сеанс.
Заранее спасибо:).
1 ответ
Решение
https://docs.python.org/3/library/asyncio-task.html
await asyncio.wait_for(session.receive_json(), timeout=5)