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

Метод websocket

Метод websocket применяется к приложению FastAPI и вешает функцию на WebSocket-соединение. Первым параметром передаётся путь URL. В отличие от обычных HTTP-маршрутов, обработчик принимает объект WebSocket и может принимать и отправлять сообщения в обе стороны.

Синтаксис

@app.websocket(path)

Пример

Давайте повесим обработчик на адрес '/ws':

from fastapi import FastAPI, WebSocket app = FastAPI() @app.websocket('/ws') async def ws_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('/echo') async def ws_echo(websocket: WebSocket): await websocket.accept() while True: data = await websocket.receive_text() await websocket.send_text(data)

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

"abcde"

Пример

Давайте примем параметр name из URL:

from fastapi import FastAPI, WebSocket app = FastAPI() @app.websocket('/user/{name}') async def ws_user(websocket: WebSocket, name: str): await websocket.accept() await websocket.send_text(name) await websocket.close()

Результат выполнения кода для адреса /user/abcde:

"abcde"

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

  • класс FastAPI,
    который создаёт приложение и хранит маршруты
  • метод add_api_websocket_route,
    который добавляет WebSocket-маршрут программно
  • метод get,
    который вешает обработчик на GET-запрос
  • метод api_route,
    который вешает обработчик на произвольный HTTP-метод
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить