TURN-Server

Damit die meisten WebRTC-Anwendungen funktionieren, ist ein Server zum Weiterleiten des Traffics zwischen Peers erforderlich, da ein direkter Socket zwischen den Clients oft nicht möglich ist (es sei denn, sie befinden sich im selben lokalen Netzwerk). Eine gängige Lösung ist die Verwendung eines TURN-Servers. Der Begriff steht für Traversal Using Relays around NAT und ist ein Protokoll zum Weiterleiten von Netzwerkverkehr.

Derzeit gibt es mehrere Optionen für TURN-Server, sowohl als selbst gehostete Anwendungen (z. B. das Open-Source-Projekt COTURN) als auch als Cloud-Dienste.

Sobald Sie einen TURN-Server online haben, benötigen Sie nur noch die richtige RTCConfiguration, damit Ihre Clientanwendung ihn verwenden kann. Das folgende Code-Snippet zeigt eine Beispielkonfiguration für einen RTCPeerConnection, bei dem der TURN-Server den Hostnamen my-turn-server.mycompany.com hat und auf Port 19403 ausgeführt wird. Das Konfigurationsobjekt unterstützt auch die Properties username und credential zum Schützen 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',
            credential: 'auth-token'
        }
    ]
}

const peerConnection = new RTCPeerConnection(iceConfiguration);