RTCPeerConnection

Talk WebRTC from Delphi/C++Builder — ICE for connectivity, DTLS 1.3 for the keying handshake, SRTP for media, SCTP-over-DTLS for DataChannels. No browser required.

TsgcRTCPeerConnection

Natywny peer WebRTC dla Delphi — odzwierciedla interfejs W3C RTCPeerConnection (CreateOffer / CreateAnswer / SetRemoteDescription / AddIceCandidate / DataChannel) oparty na wbudowanych stosach ICE, DTLS 1.3, SRTP i SCTP.

Klasa komponentu

TsgcRTCPeerConnection

Protokół

WebRTC (W3C)

Platformy

Windows, macOS, Linux, iOS, Android

Edycja

Enterprise

Offer / Answer / Connect

Dodaj serwery ICE, wywołaj CreateOffer, wyślij SDP do zdalnego peera przez kanał sygnalizacyjny, ustaw odpowiedź — i ścieżka danych jest gotowa.

uses
  sgcP2P;

var
  Peer: TsgcRTCPeerConnection;
  Channel: TsgcRTCDataChannel;
begin
  Peer := TsgcRTCPeerConnection.Create(nil);
  Peer.IceServers.Add('stun:stun.l.google.com:19302');

  Peer.OnLocalDescription := procedure(Sender: TObject;
    const aSDP: string)
  begin
    SignalToPeer(aSDP); // over your WebSocket / WebRTC signalling
  end;

  Peer.OnDataChannel := procedure(Sender: TObject;
    aChannel: TsgcRTCDataChannel)
  begin
    Channel := aChannel;
    aChannel.OnMessage := procedure(Sender: TObject;
      const aText: string)
    begin
      Memo1.Lines.Add(aText);
    end;
  end;

  // outbound side
  Channel := Peer.CreateDataChannel('chat');
  Peer.CreateOffer;
end;
// uses: sgcP2P
TsgcRTCPeerConnection *Peer = new TsgcRTCPeerConnection(this);
Peer->IceServers->Add("stun:stun.l.google.com:19302");
TsgcRTCDataChannel *Channel = Peer->CreateDataChannel("chat");
Peer->CreateOffer();

Co jest w środku

Natywny peer WebRTC łączący ICE, DTLS 1.3, SRTP i SCTP w jednym komponencie — odzwierciedlający API W3C RTCPeerConnection.

SDP Offer / Answer

CreateOffer i CreateAnswer generują SDP zgodny z RFC 8866 z właściwymi atrybutami ICE-UFRAG / ICE-PWD / FINGERPRINT / SETUP; SetRemoteDescription przyjmuje SDP zdalnego peera.

Łączność przez ICE

Wewnętrznie używa TsgcICEClient do zbierania kandydatów i sprawdzania łączności; AddIceCandidate dostarcza zdalne kandydaty w miarę ich napływania z kanału sygnalizacyjnego.

Wymiana kluczy DTLS 1.3

Po wyborze pary ICE komponent wykonuje handshake DTLS 1.3 (RFC 9147) i wyprowadza klucze SRTP przez ekstraktor SRTP.

DataChannels (SCTP przez DTLS)

CreateDataChannel otwiera strumień SCTP multipleksowany przez DTLS — niezawodny / częściowo niezawodny, z kolejnością lub bez, z regulacją przepływu przez BufferedAmount.

Ścieżki multimedialne

Ścieżki audio / wideo są przesyłane przez SRTP. Towarzyszący komponent sygnalizacji serwerowej TsgcWSPServer_RTCPeerConnection pozwala budować przekaźniki w stylu SFU.

Kompatybilność z przeglądarką

Współpracuje z RTCPeerConnection w przeglądarce — przetestowany z Chromium / Firefox / Safari. Te same semantyki SDP, te same kandydaty ICE, ten sam format DataChannel.

Specyfikacje i źródła

Autorytatywne źródła protokołu implementowanego przez ten komponent.

Dokumentacja i wersje demo

Przejdź do dokumentacji komponentu, pobierz gotowy projekt demonstracyjny i wersję próbną.

Pomoc online — TsgcRTCPeerConnection Pełna dokumentacja właściwości, metod i zdarzeń tego komponentu.
Projekt demonstracyjny — Demos\35.P2P\05.RTCPeerConnection Gotowy do uruchomienia przykładowy projekt. Dołączony do pakietu sgcWebSockets — pobierz wersję próbną poniżej.
Dokument techniczny (PDF) Funkcje, szybki start, przykłady kodu dla Delphi i C++ Builder oraz odniesienia do źródeł pierwotnych — tylko ten komponent.
Podręcznik użytkownika (PDF) Kompleksowy podręcznik obejmujący każdy komponent biblioteki.

Gotowy, żeby uruchomić WebRTC w Delphi?

Pobierz bezpłatną wersję próbną i dodaj natywny RTCPeerConnection do swoich aplikacji Delphi.