TURN-client (TsgcTURNClient) — sgcWebSockets | eSeGeCe

TURN-client

Praat met een TURN-server vanuit Delphi/C++Builder. Wijs gerelayde transportadressen toe, beheer permissions en channels en wissel data uit met peers achter symmetric NAT — volgens RFC 8656.

TsgcTURNClient

TURN-client — Allocate, CreatePermission, ChannelBind, Send / Indication / Data, Refresh, allemaal ondertekend met long-term credentials volgens RFC 8656.

Componentklasse

TsgcTURNClient

Protocol

TURN (RFC 8656)

Platforms

Windows, macOS, Linux, iOS, Android

Editie

Professional / Enterprise

Allocate, permission, send

Stel TURN-server / gebruikersnaam / wachtwoord in, roep Allocate aan en gebruik daarna CreatePermission per peer en Send / SendIndication om data te relayen.

uses
  sgcP2P;

var
  TURN: TsgcTURNClient;
begin
  TURN := TsgcTURNClient.Create(nil);
  TURN.Host := 'turn.example.com';
  TURN.Port := 3478;
  TURN.Authentication.UserName := 'alice';
  TURN.Authentication.Password := 'secret';

  TURN.OnTURNAllocated := procedure(Sender: TObject;
    const aRelayedAddress, aRelayedPort: string)
  begin
    Memo1.Lines.Add('relay: ' + aRelayedAddress + ':' + aRelayedPort);
    TURN.CreatePermission('192.0.2.1');
    TURN.SendIndication('192.0.2.1', 5000, 'hello via TURN');
  end;

  TURN.Allocate;
end;
// uses: sgcP2P
TsgcTURNClient *TURN = new TsgcTURNClient(this);
TURN->Host = "turn.example.com";
TURN->Port = 3478;
TURN->Authentication->UserName = "alice";
TURN->Authentication->Password = "secret";
TURN->Allocate();

Wat zit erin

Een getypeerde RFC 8656 TURN-client — de relay-laag voor WebRTC wanneer NAT-traversal met alleen STUN faalt.

Allocate / Refresh

Allocate stuurt een Allocate-request met REQUESTED-TRANSPORT (UDP, TCP) en krijgt een gerelayd transportadres. Refresh verlengt de levensduur; Free dealloceert expliciet.

CreatePermission

CreatePermission(peerIp) registreert een peer waarvan de relay datagrammen mag doorsturen. Permissions verlopen automatisch na 5 minuten — ververs ze indien nodig.

ChannelBind

ChannelBind(channelNumber, peerEndpoint) omzeilt de 36 byte Send/Data-overhead. Het component codeert automatisch de 4 byte ChannelData-header.

Long-term credentials

Authentication.UserName / Password vullen MESSAGE-INTEGRITY met het realm en nonce uit de 401 challenge.

TURN over TCP/TLS

Zet de Transport van de onderliggende client op TCP of TLS voor omgevingen die UDP blokkeren — transportkeuzes uit RFC 6062 / 6056 worden ondersteund.

WebRTC-ready

TsgcRTCPeerConnection gebruikt TsgcTURNClient als een van zijn IceServers — de Allocate-, CreatePermission- en ChannelBind-dans verloopt transparant.

Specificaties & referenties

Autoritatieve bronnen voor het protocol dat dit component implementeert.

Documentatie & demo's

Direct linken naar de componentreferentie, het kant-en-klare demoproject pakken en de proefversie downloaden.

Online help — TsgcTURNClient Volledige referentie van eigenschappen, methoden en gebeurtenissen voor dit component.
Demoproject — Demos\35.P2P\03.TURN Kant-en-klaar voorbeeldproject. Zit in het sgcWebSockets-pakket — download hieronder de proefversie.
Technisch document (PDF) Functies, snelstart, codevoorbeelden voor Delphi & C++ Builder en primaire bronverwijzingen — alleen dit component.
Gebruikershandleiding (PDF) Uitgebreide handleiding voor elk component in de bibliotheek.
De beste deal: All-AccessElk eSeGeCe-product, inclusief Premium-ondersteuning, vanaf €1,059 per jaar.
Bekijk de All-Access-prijzen

Klaar om TURN vanuit Delphi te gebruiken?

Download de gratis proefversie en voeg op TURN gebaseerde relaying toe aan je Delphi-toepassingen.