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

Метод close

Метод close применяется к объекту WebSocket внутри обработчика WebSocket-маршрута и разрывает соединение с клиентом. Первым необязательным параметром передаётся код закрытия code, вторым необязательным параметром - причина закрытия reason. Если параметры не указаны, соединение закрывается с кодом 1000 (нормальное закрытие) и пустой причиной. Метод является асинхронным, поэтому вызывается через await.

После вызова close соединение переходит в состояние закрытия: отправлять и принимать сообщения через этот объект WebSocket уже нельзя. Если клиент ещё не был принят через accept, вызов close корректно завершит рукопожатие с кодом ошибки.

Синтаксис

await websocket.close(code=1000, reason='')

Пример

Давайте создадим WebSocket-маршрут, который принимает соединение и сразу закрывает его с кодом 1000:

from fastapi import FastAPI, WebSocket app = FastAPI() @app.websocket('/ws') async def websocket_endpoint(websocket: WebSocket): await websocket.accept() await websocket.close()

После подключения клиента к адресу /ws сервер примет соединение и немедленно его закроет с кодом 1000.

Пример

Давайте закроем соединение с пользовательским кодом 4000 и причиной 'article':

from fastapi import FastAPI, WebSocket app = FastAPI() @app.websocket('/ws') async def websocket_endpoint(websocket: WebSocket): await websocket.accept() await websocket.close(code=4000, reason='article')

Клиент получит код закрытия 4000 и строку причины 'article'. Коды в диапазоне 4000–4999 зарезервированы для использования приложением.

Пример

Давайте примем сообщение от клиента и закроем соединение с кодом 1001 (сервер уходит):

from fastapi import FastAPI, WebSocket app = FastAPI() @app.websocket('/ws') async def websocket_endpoint(websocket: WebSocket): await websocket.accept() text = await websocket.receive_text() await websocket.send_text(f'echo: {text}') await websocket.close(code=1001, reason='server going away')

Если клиент отправит строку 'hello', он получит ответ, а затем соединение закроется с кодом 1001.

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

  • класс WebSocket,
    который представляет WebSocket-соединение
  • метод accept,
    который принимает WebSocket-соединение
  • метод receive_text,
    который принимает текстовое сообщение от клиента
  • метод send_text,
    который отправляет текстовое сообщение клиенту
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить