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

Статус WS_1000_NORMAL_CLOSURE

Статус WS_1000_NORMAL_CLOSURE используется при закрытии WebSocket-соединения для указания того, что соединение было закрыто штатно, без ошибок. Этот код закрытия является значением по умолчанию и передаётся первым аргументом в метод close объекта WebSocket. Он сигнализирует клиенту, что сервер завершил работу корректно.

Синтаксис

from fastapi import WebSocket await websocket.close(code=1000)

Пример

Давайте создадим WebSocket-маршрут, который принимает сообщения и закрывает соединение с кодом 1000 при получении команды 'close':

from fastapi import FastAPI, WebSocket app = FastAPI() @app.websocket('/ws') async def websocket_endpoint(websocket: WebSocket): await websocket.accept() while True: data = await websocket.receive_text() if data == 'close': await websocket.close(code=1000) break await websocket.send_text(f'echo: {data}')

Запустим сервер:

uvicorn main:app --reload

Клиент отправляет сообщение 'hello' и получает ответ:

"echo: hello"

После отправки 'close' соединение закрывается с кодом 1000.

Пример

Давайте явно укажем статус WS_1000_NORMAL_CLOSURE через константу из модуля starlette.status:

<+python+> from fastapi import FastAPI, WebSocket from starlette.status import WS_1000_NORMAL_CLOSURE app = FastAPI() @app.websocket('/ws') async def websocket_endpoint(websocket: WebSocket): await websocket.accept() data = await websocket.receive_text() await websocket.send_text(f'received: {data}') await websocket.close(code=WS_1000_NORMAL_CLOSURE) <-python+>

Клиент отправляет 'abcde' и получает ответ:

"received: abcde"

Затем соединение закрывается с кодом 1000.

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

  • статус WS_1008_POLICY_VIOLATION,
    который обозначает нарушение политики WebSocket-соединения
  • статус HTTP_200_OK,
    который обозначает успешный HTTP-ответ
  • статус HTTP_500_INTERNAL_SERVER_ERROR,
    который обозначает внутреннюю ошибку сервера
  • модуль status,
    который содержит все статусы HTTP и WebSocket
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить