INTEGRITY Документация

Connection API

Cloudflare Realtime упрощает управление пиринговыми соединениями и медиатреками с помощью эндпойнтов HTTPS API. Эти эндпойнты позволяют разработчикам эффективно управлять сессиями, добавлять и удалять треки, а также получать информацию о сессии.

Эндпойнты API

Просмотр полного API и схемы (формат OpenAPI)

Обработка секретов

Крайне важно надёжно защищать App ID и его секрет. Хотя track ID и session ID могут быть публичными, их всё равно следует защищать от неправомерного использования. Если ваш бэкенд-сервер не проверяет должным образом источник запросов, злоумышленник может воспользоваться этими идентификаторами, чтобы нарушить работу сервиса, например отправляя запросы на закрытие треков в чужих сессиях. Обеспечение безопасности и подлинности запросов к вашему бэкенд-серверу критически важно для сохранения целостности вашего приложения.

Использование STUN- и TURN-серверов

Cloudflare Realtime спроектирован так, чтобы в большинстве сценариев эффективно работать без TURN-серверов, поскольку Cloudflare предоставляет для Realtime общедоступный маршрутизируемый IP-адрес. Тем не менее для обнаружения узлов и установления соединения может потребоваться STUN-сервер.

Использование STUN-сервера Cloudflare может облегчить процесс установления соединения для приложений Realtime.

Жизненный цикл простого Session

В этом разделе представлен обзор типичного жизненного цикла простой сессии на примере приложений только с аудио. Показано, как backend-сервер уведомляет клиентов о присоединении и выходе новых удалённых клиентов; добавление видео привнесло бы в сессию дополнительные треки и нюансы.

sequenceDiagram
    participant WA as WebRTC Agent
    participant BS as Backend Server
    participant CA as Realtime API

    Note over BS: Client Joins

    WA->>BS: Request
    BS->>CA: POST /sessions/new
    CA->>BS: newSessionResponse
    BS->>WA: Response

    WA->>BS: Request
    BS->>CA: POST /sessions/<ID>/tracks/new (Offer)
    CA->>BS: newTracksResponse (Answer)
    BS->>WA: Response

    WA-->>CA: ICE Connectivity Check
    Note over WA: iceconnectionstatechange (connected)
    WA-->>CA: DTLS Handshake
    Note over WA: connectionstatechange (connected)

    WA<<->>CA: *Media Flow*

    Note over BS: Remote Client Joins

    WA->>BS: Request
    BS->>CA: POST /sessions/<ID>/tracks/new
    CA->>BS: newTracksResponse (Offer)
    BS->>WA: Response

    WA->>BS: Request
    BS->>CA: PUT /sessions/<ID>/renegotiate (Answer)
    CA->>BS: OK
    BS->>WA: Response

    Note over BS: Remote Client Leaves

    WA->>BS: Request
    BS->>CA: PUT /sessions/<ID>/tracks/close
    CA->>BS: closeTracksResponse
    BS->>WA: Response

    Note over BS: Client Leaves

    WA->>BS: Request
    BS->>CA: PUT /sessions/<ID>/tracks/close
    CA->>BS: closeTracksResponse
    BS->>WA: Response