Атрибут code
Атрибут code применяется к экземпляру класса
WebSocketException и хранит числовой код,
который отправляется клиенту при закрытии
WebSocket-соединения. По умолчанию используется
код 1000, что означает нормальное закрытие.
Значение атрибута можно задать при создании
исключения или изменить после его создания.
Код должен быть целым числом в диапазоне от
1000 до 4999. Коды
1000–2999 зарезервированы
протоколом WebSocket, а коды
3000–4999 доступны для
использования приложением.
Синтаксис
WebSocketException(code)
Также атрибут доступен для чтения и записи через экземпляр исключения:
exception = WebSocketException()
exception.code = 1008
Пример
Давайте создадим исключение с кодом
1008, который означает нарушение политики:
from fastapi import WebSocketException
exc = WebSocketException(code=1008)
print(exc.code)
Результат выполнения кода:
1008
Пример
Давайте используем атрибут code внутри
WebSocket-маршрута для закрытия соединения
с пользовательским кодом:
from fastapi import FastAPI, WebSocket, WebSocketException
app = FastAPI()
@app.websocket('/ws')
async def websocket_endpoint(websocket: WebSocket):
await websocket.accept()
try:
raise WebSocketException(code=1008)
except WebSocketException as exc:
await websocket.close(code=exc.code)
Клиент получит код закрытия 1008,
который сигнализирует о нарушении политики.
Пример
Давайте изменим код исключения после его создания:
Результат выполнения кода:
1011
Смотрите также
-
класс
WebSocketException,
который представляет исключение WebSocket-соединения -
атрибут
reason,
который хранит текстовое описание причины закрытия -
класс
WebSocketDisconnect,
который возникает при отключении WebSocket-клиента -
класс
HTTPException,
который представляет исключение HTTP-запроса