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

Метод websocket класса APIRouter

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

Синтаксис

@router.websocket(path)

Пример

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

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

После подключения клиента по адресу /ws сервер отправит строку:

"hello"

Пример

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

from fastapi import FastAPI, APIRouter, WebSocket app = FastAPI() router = APIRouter() @router.websocket('/ws/{user}') async def ws_user(websocket: WebSocket, user: str): await websocket.accept() data = await websocket.receive_text() await websocket.send_text(user + ': ' + data) await websocket.close() app.include_router(router)

Результат выполнения кода для адреса /ws/abcde и сообщения 'article':

"abcde: article"

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

  • класс APIRouter,
    который группирует маршруты в отдельный роутер
  • метод get,
    который вешает обработчик на GET-запрос
  • метод post,
    который вешает обработчик на POST-запрос
  • метод include_router,
    который подключает роутер к приложению
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить