Serveur TURN

Pour que la plupart des applications WebRTC fonctionnent, un serveur est nécessaire pour transmettre le trafic entre les pairs, car un socket direct est souvent impossible entre les clients (sauf s'ils se trouvent sur le même réseau local). La solution la plus courante consiste à utiliser un serveur turn. L'acronyme de "Traversal Using Relaystour NAT" est l'acronyme de Traversal using Relays. Il s'agit d'un protocole de relais du trafic réseau.

Il existe actuellement plusieurs options pour les serveurs turn disponibles en ligne, à la fois en tant qu'applications auto-hébergées (comme le projet Open Source COTurn) et en tant que services cloud.

Une fois qu'un serveur turn est disponible en ligne, il vous suffit de fournir le bon RTCConfiguration pour que votre application cliente puisse l'utiliser. L'extrait de code suivant illustre un exemple de configuration pour un RTCPeerConnection où le serveur Turn possède le nom d'hôte my-turn-server.mycompany.com et s'exécute sur le port 19403. L'objet de configuration prend également en charge les propriétés username et credential pour sécuriser l'accès au serveur. Ils sont nécessaires pour se connecter à un serveur turn.

const iceConfiguration = {
    iceServers: [
        {
            urls: 'turn:my-turn-server.mycompany.com:19403',
            username: 'optional-username',
            credential: 'auth-token'
        }
    ]
}

const peerConnection = new RTCPeerConnection(iceConfiguration);