РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
251 of 307 menu

Атрибут reason

Атрибут reason принадлежит классу WebSocketException и хранит строку с описанием причины, по которой сервер закрывает WebSocket-соединение. Значение передаётся вторым параметром при создании исключения и попадает в кадр закрытия соединения вместе с кодом из атрибута code. Если причина не указана, атрибут хранит пустую строку. Атрибут доступен только для чтения и используется клиентом для понимания того, почему сервер разорвал соединение.

Синтаксис

exception.reason

Пример

Давайте создадим исключение WebSocketException с кодом 1008 и причиной 'policy violation' и выведем значение атрибута reason:

from fastapi import FastAPI, WebSocket, WebSocketException app = FastAPI() @app.websocket('/ws') async def ws_endpoint(websocket: WebSocket): await websocket.accept() exc = WebSocketException(code=1008, reason='policy violation') print(exc.reason) await websocket.close(code=exc.code, reason=exc.reason)

Результат выполнения кода:

"policy violation"

Пример

Давайте выбросим исключение WebSocketException с причиной 'user' и перехватим его, чтобы прочитать атрибут reason:

<+python+> from fastapi import FastAPI, WebSocket, WebSocketException app = FastAPI() @app.websocket('/chat') async def chat(websocket: WebSocket): await websocket.accept() try: raise WebSocketException(code=1008, reason='user') except WebSocketException as exc: print(exc.reason) await websocket.close(code=exc.code, reason=exc.reason) <-python+>

Результат выполнения кода:

"user"

Смотрите также

  • класс WebSocketException,
    который представляет исключение для WebSocket-соединения
  • атрибут code,
    который хранит код закрытия WebSocket-соединения
  • класс WebSocketDisconnect,
    который возникает при разрыве соединения клиентом
  • класс WebSocketRequestValidationError,
    который возникает при ошибке валидации данных WebSocket
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить