RTCPeerConnection

Sprich WebRTC aus Delphi/C++Builder — ICE für die Konnektivität, DTLS 1.3 für den Keying-Handshake, SRTP für Medien, SCTP-over-DTLS für DataChannels. Kein Browser erforderlich.

TsgcRTCPeerConnection

Nativer Delphi-WebRTC-Peer — bildet die W3C-RTCPeerConnection-Oberfläche ab (CreateOffer / CreateAnswer / SetRemoteDescription / AddIceCandidate / DataChannel), gestützt auf die mitgelieferten ICE-, DTLS-1.3-, SRTP- und SCTP-Stacks.

Komponentenklasse

TsgcRTCPeerConnection

Protokoll

WebRTC (W3C)

Plattformen

Windows, macOS, Linux, iOS, Android

Edition

Enterprise

Offer / Answer / Connect

Füge ICE-Server hinzu, rufe CreateOffer auf, schicke das SDP über deinen Signalling-Kanal an den Remote-Peer, setze die Antwort — und der Datenpfad startet.

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();

Was steckt drin

Ein nativer WebRTC-Peer, der ICE, DTLS 1.3, SRTP und SCTP in einer einzigen Komponente bündelt — mit gleicher Oberfläche wie die W3C-RTCPeerConnection-API.

SDP Offer / Answer

CreateOffer und CreateAnswer erzeugen RFC-8866-SDP mit den passenden ICE-UFRAG-, ICE-PWD-, FINGERPRINT- und SETUP-Attributen; SetRemoteDescription liest das SDP des Peers ein.

ICE-getriebene Konnektivität

Verwendet intern TsgcICEClient für Kandidatensammlung und Konnektivitätsprüfungen; AddIceCandidate speist Remote-Kandidaten ein, sobald sie aus dem Signalling eintreffen.

DTLS-1.3-Keying

Sobald das ausgewählte ICE-Paar schreibbar wird, führt die Komponente einen DTLS-1.3-Handshake (RFC 9147) durch und leitet SRTP-Schlüssel über den SRTP-Extractor ab.

DataChannels (SCTP-over-DTLS)

CreateDataChannel öffnet einen über DTLS multiplexten SCTP-Stream — reliable / partial-reliable, ordered / unordered, mit Backpressure über BufferedAmount.

Medien-Tracks

Audio- und Video-Tracks laufen über SRTP. Die zugehörige serverseitige Signalling-Komponente TsgcWSPServer_RTCPeerConnection erlaubt dir den Bau von SFU-artigen Relays.

Browser-kompatibel

Interoperabel mit Browser-RTCPeerConnection — getestet gegen Chromium / Firefox / Safari. Gleiche SDP-Semantik, gleiche ICE-Kandidaten, gleiches DataChannel-Wire-Format.

Spezifikationen & Referenzen

Maßgebliche Quellen für das Protokoll, das diese Komponente implementiert.

Dokumentation & Demos

Springe direkt zur Komponentenreferenz, hole dir das sofort lauffähige Demo-Projekt und lade die Testversion herunter.

Online-Hilfe — TsgcRTCPeerConnection Vollständige Referenz zu Eigenschaften, Methoden und Ereignissen dieser Komponente.
Demo-Projekt — Demos\35.P2P\05.RTCPeerConnection Sofort lauffähiges Beispielprojekt. Wird im sgcWebSockets-Paket mitgeliefert — lade unten die Testversion herunter.
Technisches Dokument (PDF) Funktionen, Schnellstart, Code-Beispiele für Delphi & C++ Builder und Primärquellen-Referenzen — nur diese Komponente.
Benutzerhandbuch (PDF) Umfassendes Handbuch, das jede Komponente der Bibliothek abdeckt.

Bereit, WebRTC in Delphi zu betreiben?

Lade die kostenlose Testversion herunter und ergänze deine Delphi-Anwendungen um native RTCPeerConnection.