RTCPeerConnection

Spreek WebRTC vanuit Delphi/C++Builder — ICE voor connectiviteit, DTLS 1.3 voor de keying-handshake, SRTP voor media, SCTP-over-DTLS voor DataChannels. Geen browser nodig.

TsgcRTCPeerConnection

Native Delphi WebRTC-peer — weerspiegelt het W3C RTCPeerConnection-oppervlak (CreateOffer / CreateAnswer / SetRemoteDescription / AddIceCandidate / DataChannel), aangedreven door de meegeleverde ICE-, DTLS 1.3-, SRTP- en SCTP-stacks.

Componentklasse

TsgcRTCPeerConnection

Protocol

WebRTC (W3C)

Platforms

Windows, macOS, Linux, iOS, Android

Editie

Enterprise

Offer / Answer / Connect

Voeg ICE-servers toe, roep CreateOffer aan, stuur de SDP via je signalling-kanaal naar de remote peer, stel het antwoord in en het datapad gaat aan.

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

Wat zit erin

Een native WebRTC-peer die ICE, DTLS 1.3, SRTP en SCTP bundelt in één component — spiegelt de W3C RTCPeerConnection-API.

SDP Offer / Answer

CreateOffer en CreateAnswer genereren RFC 8866-SDP met de juiste ICE-UFRAG-, ICE-PWD-, FINGERPRINT- en SETUP-attributen; SetRemoteDescription verwerkt de SDP van de peer.

ICE-gestuurde connectiviteit

Gebruikt intern TsgcICEClient voor het verzamelen van kandidaten en connectiviteitscontroles; AddIceCandidate voert remote kandidaten in zodra ze via signalling binnenkomen.

DTLS 1.3-keying

Nadat het geselecteerde ICE-paar beschrijfbaar wordt, voert de component een DTLS 1.3-handshake uit (RFC 9147) en leidt SRTP-sleutels af via SRTP-extractor.

DataChannels (SCTP-over-DTLS)

CreateDataChannel opent een SCTP-stream gemultiplext over DTLS — reliable / partial-reliable, geordend / ongeordend, met backpressure via BufferedAmount.

Media-tracks

Audio- en videotracks gaan via SRTP. De bijbehorende server-side signalling-component TsgcWSPServer_RTCPeerConnection laat je SFU-achtige relays bouwen.

Browsercompatibel

Werkt samen met browser-RTCPeerConnection — getest tegen Chromium / Firefox / Safari. Dezelfde SDP-semantiek, dezelfde ICE-kandidaten, hetzelfde DataChannel-wire-format.

Specificaties & referenties

Gezaghebbende bronnen voor het protocol dat deze component implementeert.

Documentatie & demo's

Deep-link naar de componentreferentie, pak het kant-en-klare demoproject en download de proefversie.

Online help — TsgcRTCPeerConnection Volledige referentie van eigenschappen, methoden en events voor deze component.
Demoproject — Demos\35.P2P\05.RTCPeerConnection Kant-en-klaar voorbeeldproject. Wordt meegeleverd in de sgcWebSockets-package — download hieronder de proefversie.
Technisch document (PDF) Functies, snelstart, codevoorbeelden voor Delphi & C++ Builder en primaire bronverwijzingen — alleen voor deze component.
Gebruikershandleiding (PDF) Uitgebreide handleiding die elke component in de bibliotheek behandelt.

Klaar om WebRTC in Delphi te draaien?

Download de gratis proefversie en voeg native RTCPeerConnection toe aan je Delphi-applicaties.