Client TURN
Dialogue avec un serveur TURN depuis Delphi/C++Builder. Alloue des adresses de transport relayées, gère les permissions et canaux, puis échange des données avec des pairs derrière un NAT symétrique — selon la RFC 8656.
Dialogue avec un serveur TURN depuis Delphi/C++Builder. Alloue des adresses de transport relayées, gère les permissions et canaux, puis échange des données avec des pairs derrière un NAT symétrique — selon la RFC 8656.
Client TURN — Allocate, CreatePermission, ChannelBind, Send / Indication / Data, Refresh, tous signés avec des credentials longue durée selon la RFC 8656.
TsgcTURNClient
Windows, macOS, Linux, iOS, Android
Professional / Enterprise
Configure le serveur TURN, le nom d'utilisateur et le mot de passe, appelle Allocate, puis CreatePermission pour chaque pair et Send / SendIndication pour relayer les données.
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();
Un client TURN typé conforme à la RFC 8656 — la couche de relais pour WebRTC quand la traversée NAT par STUN seul échoue.
Allocate envoie une requête Allocate avec REQUESTED-TRANSPORT (UDP, TCP) et obtient une adresse de transport relayée. Refresh prolonge la durée de vie ; Free désalloue explicitement.
CreatePermission(peerIp) enregistre un pair dont les datagrammes seront relayés. Les permissions expirent automatiquement au bout de 5 minutes — rafraîchis-les si besoin.
ChannelBind(channelNumber, peerEndpoint) contourne le surcoût de 36 octets de Send/Data. Le composant encode automatiquement l'en-tête ChannelData de 4 octets.
Authentication.UserName / Password renseignent MESSAGE-INTEGRITY à partir du realm et du nonce extraits du défi 401.
Configure le Transport du client sous-jacent en TCP ou TLS pour les environnements qui bloquent UDP — les choix de transport des RFC 6062 / 6056 sont pris en charge.
TsgcRTCPeerConnection consomme TsgcTURNClient comme l'un de ses IceServers — le ballet Allocate, CreatePermission et ChannelBind se déroule de façon transparente.
Lien direct vers la référence du composant, projet de démo prêt à l'emploi et téléchargement de l'essai.
| Aide en ligne — TsgcTURNClient Référence complète des propriétés, méthodes et événements de ce composant. | Ouvrir | |
| Projet de démo — Demos\35.P2P\03.TURN Projet d'exemple prêt à l'emploi. Livré dans le package sgcWebSockets — télécharge l'essai ci-dessous. | Ouvrir | |
| Document technique (PDF) Fonctionnalités, démarrage rapide, exemples de code Delphi et C++ Builder et références primaires — ce composant uniquement. | Ouvrir | |
| Manuel utilisateur (PDF) Manuel complet couvrant tous les composants de la bibliothèque. | Ouvrir |