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

Класс WebSocket

Класс WebSocket применяется для работы с WebSocket-соединениями в FastAPI. Он передаётся в функцию-обработчик WebSocket-маршрута и предоставляет методы для приёма и отправки текстовых, JSON и бинарных сообщений, а также для принятия и закрытия соединения.

Синтаксис

from fastapi import WebSocket

Пример

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

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

Клиент подключится к адресу /ws и получит сообщение:

"hello"

Пример

Давайте примем текстовое сообщение от клиента и вернём его обратно:

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() await websocket.send_text(data)

Если клиент отправит строку 'abcde', то получит её обратно:

"abcde"

Пример

Давайте примем JSON-сообщение от клиента и отправим ответ в формате JSON:

from fastapi import FastAPI, WebSocket app = FastAPI() @app.websocket('/ws') async def websocket_endpoint(websocket: WebSocket): await websocket.accept() data = await websocket.receive_json() await websocket.send_json({'user': data['user'], 'text': 'hello'}) await websocket.close()

Если клиент отправит JSON {'user': 'abcde'}, то получит ответ:

{"user": "abcde", "text": "hello"}

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

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