Как закрыть сеанс, когда время приема слишком велико? - PullRequest
0 голосов
/ 25 сентября 2019

Я использовал 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 Ответ

0 голосов
/ 25 сентября 2019

https://docs.python.org/3/library/asyncio-task.html#asyncio.wait_for

await asyncio.wait_for(session.receive_json(), timeout=5)
...