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

Метод add_api_websocket_route

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

Синтаксис

app.add_api_websocket_route(path, endpoint, name=None)

Пример

Давайте зарегистрируем WebSocket-обработчик на адрес '/ws':

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

После подключения клиента по адресу ws://localhost:8000/ws сервер отправит строку 'hello' и закроет соединение.

Пример

Давайте передадим параметр name в URL и используем его при отправке сообщения:

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

После подключения клиента по адресу ws://localhost:8000/ws/abcde сервер отправит строку 'user abcde' и закроет соединение.

Пример

Давайте зададим имя маршрута через параметр name и получим его через app.url_path_for:

from fastapi import FastAPI, WebSocket app = FastAPI() async def ws_endpoint(websocket: WebSocket): await websocket.accept() await websocket.send_text('hello') await websocket.close() app.add_api_websocket_route('/ws', ws_endpoint, name='ws_route') res = app.url_path_for('ws_route')

Результат выполнения кода:

"/ws"

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

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