Damit die meisten WebRTC-Anwendungen funktionieren, ist ein Server erforderlich, um den Datenverkehr zwischen Peers weiterzuleiten, da ein direkter Socket zwischen den Clients häufig nicht möglich ist (es sei denn, sie befinden sich im selben lokalen Netzwerk). Die übliche Lösung für dieses Problem ist die Verwendung eines TURN-Servers. Der Begriff steht für Traversal Using Relay NAT und ist ein Protokoll zum Weiterleiten des Netzwerkverkehrs.
Derzeit sind verschiedene Optionen für TURN-Server online verfügbar, sowohl als selbst gehostete Anwendungen (wie das Open-Source-COTURN-Projekt) als auch als Cloud-Dienste.
Sobald Sie einen TURN-Server online verfügbar haben, benötigen Sie RTCConfiguration
die richtige RTCConfiguration
damit Ihre Client-Anwendung ihn verwenden kann. Das folgende Code-Snippet zeigt eine Beispielkonfiguration für eine RTCPeerConnection
bei der der TURN-Server den Hostnamen my-turn-server.mycompany.com
und auf Port 19403
. Das Konfigurationsobjekt unterstützt auch die Eigenschaften username
und credentials
zum Sichern des Zugriffs auf den Server. Diese sind erforderlich, wenn eine Verbindung zu einem TURN-Server hergestellt wird.
const iceConfiguration = {
iceServers: [
{
urls: 'turn:my-turn-server.mycompany.com:19403',
username: 'optional-username',
credentials: 'auth-token'
}
]
}
const peerConnection = new RTCPeerConnection(iceConfiguration);