INTEGRITY Dokumentace

Connection API

Cloudflare Realtime zjednodušuje správu peer-to-peer spojení a mediálních stop prostřednictvím koncových bodů HTTPS API. Tyto koncové body umožňují vývojářům efektivně spravovat relace, přidávat nebo odebírat stopy a získávat informace o relaci.

Endpointy API

Zobrazit úplné API a schéma (formát OpenAPI)

Práce s tajnými klíči

Je zásadní bezpečně spravovat App ID a jeho secret. Track ID a session ID sice mohou být veřejné, přesto by měly být chráněny před zneužitím. Pokud váš backendový server řádně neověřuje původ požadavků, může útočník tato ID zneužít k narušení služby, například odesláním požadavků na uzavření tracků v cizích sessions. Zajištění bezpečnosti a pravosti požadavků na váš backendový server je klíčové pro zachování integrity vaší aplikace.

Používání serverů STUN a TURN

Cloudflare Realtime je navržen tak, aby ve většině scénářů efektivně fungoval bez nutnosti TURN serverů, protože Cloudflare pro Realtime vystavuje veřejně směrovatelnou IP adresu. Integrace STUN serveru však může být potřebná pro usnadnění vzájemného vyhledávání a připojování peerů.

Využití STUN serveru Cloudflare může pomoci procesu navazování spojení v aplikacích Realtime.

Životní cyklus jednoduché relace

Tato část poskytuje přehled typického životního cyklu jednoduché relace se zaměřením na aplikace pouze pro zvuk. Ukazuje, jak backendový server informuje klienty o připojení nebo odchodu nových vzdálených klientů. Zapojení videa by do relace přineslo další tracky a další aspekty, se kterými je třeba počítat.

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