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.
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.
TURN-client — Allocate, CreatePermission, ChannelBind, Send / Indication / Data, Refresh, allemaal ondertekend met long-term credentials volgens RFC 8656.
TsgcTURNClient
Windows, macOS, Linux, iOS, Android
Professional / Enterprise
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();
Een getypeerde RFC 8656 TURN-client — de relay-laag voor WebRTC wanneer NAT-traversal met alleen STUN faalt.
Allocate stuurt een Allocate-request met REQUESTED-TRANSPORT (UDP, TCP) en krijgt een gerelayd transportadres. Refresh verlengt de levensduur; Free dealloceert expliciet.
CreatePermission(peerIp) registreert een peer waarvan de relay datagrammen mag doorsturen. Permissions verlopen automatisch na 5 minuten — ververs ze indien nodig.
ChannelBind(channelNumber, peerEndpoint) omzeilt de 36 byte Send/Data-overhead. Het component codeert automatisch de 4 byte ChannelData-header.
Authentication.UserName / Password vullen MESSAGE-INTEGRITY met het realm en nonce uit de 401 challenge.
Zet de Transport van de onderliggende client op TCP of TLS voor omgevingen die UDP blokkeren — transportkeuzes uit RFC 6062 / 6056 worden ondersteund.
TsgcRTCPeerConnection gebruikt TsgcTURNClient als een van zijn IceServers — de Allocate-, CreatePermission- en ChannelBind-dans verloopt transparant.
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. | Openen | |
| Demoproject — Demos\35.P2P\03.TURN Kant-en-klaar voorbeeldproject. Zit in het sgcWebSockets-pakket — download hieronder de proefversie. | Openen | |
| Technisch document (PDF) Functies, snelstart, codevoorbeelden voor Delphi & C++ Builder en primaire bronverwijzingen — alleen dit component. | Openen | |
| Gebruikershandleiding (PDF) Uitgebreide handleiding voor elk component in de bibliotheek. | Openen |