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

Метод send_bytes

Метод send_bytes применяется к объекту WebSocket внутри обработчика WebSocket-маршрута. Он отправляет клиенту бинарные данные в виде байтовой строки. Первым параметром передаётся объект bytes с данными для отправки. Метод является асинхронным, поэтому вызывается через await.

Метод send_bytes удобно использовать для передачи файлов, изображений, аудио и любых других данных, которые не являются текстом или JSON. В отличие от send_text и send_json, он работает именно с байтовым содержимым.

Синтаксис

await websocket.send_bytes(data)

Пример

Давайте отправим клиенту простую байтовую строку:

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

Клиент получит бинарное сообщение с содержимым b'abcde'.

Пример

Давайте отправим клиенту байты, полученные из строки:

from fastapi import FastAPI, WebSocket app = FastAPI() @app.websocket('/ws') async def ws_handler(websocket: WebSocket): await websocket.accept() data = 'hello'.encode('utf-8') await websocket.send_bytes(data) await websocket.close()

Клиент получит бинарное сообщение с содержимым b'hello'.

Пример

Давайте отправим клиенту список чисел, упакованный в байты через модуль struct:

import struct from fastapi import FastAPI, WebSocket app = FastAPI() @app.websocket('/ws') async def ws_handler(websocket: WebSocket): await websocket.accept() data = struct.pack('3i', 1, 2, 3) await websocket.send_bytes(data) await websocket.close()

Клиент получит бинарное сообщение с упакованными числами 1, 2 и 3.

Пример

Давайте организуем эхо-сервер, который принимает байты от клиента и отправляет их обратно:

from fastapi import FastAPI, WebSocket app = FastAPI() @app.websocket('/ws') async def ws_handler(websocket: WebSocket): await websocket.accept() while True: data = await websocket.receive_bytes() await websocket.send_bytes(data)

Клиент отправит сообщение b'abcde' и получит его обратно без изменений.

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

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