Perché la maggior parte delle applicazioni WebRTC funzioni un server è necessario per inoltrare il traffico tra peer, poiché spesso non è possibile un socket diretto tra i client (a meno che non risiedano sulla stessa rete locale). Il modo comune per risolvere questo è utilizzando un server TURN. Il termine sta per Traversal Using Relay NAT ed è un protocollo per l'inoltro del traffico di rete.
Esistono attualmente diverse opzioni per i server TURN disponibili online, sia come applicazioni self-hosted (come il progetto open source COTURN) sia come servizi forniti dal cloud.
Una volta che un server TURN è disponibile online, tutto ciò che serve è la corretta RTCConfiguration
affinché l'applicazione client possa utilizzarlo. Il frammento di codice seguente illustra una configurazione di esempio per RTCPeerConnection
cui il server TURN ha il nome host my-turn-server.mycompany.com
ed è in esecuzione sulla porta 19403
. L'oggetto di configurazione supporta anche le proprietà del username
e delle credentials
per proteggere l'accesso al server. Questi sono richiesti quando ci si connette a un server TURN.
const iceConfiguration = {
iceServers: [
{
urls: 'turn:my-turn-server.mycompany.com:19403',
username: 'optional-username',
credentials: 'auth-token'
}
]
}
const peerConnection = new RTCPeerConnection(iceConfiguration);