Affinché la maggior parte delle applicazioni WebRTC funzioni, è necessario un server per il riepassaggio del traffico tra i peer, poiché spesso non è possibile una socket diretta tra i client (a meno che non si trovino sulla stessa rete locale). Il modo più comune per risolvere questo problema è utilizzare un server TURN. Il termine è l'acronimo di Traversal Using Relays around NAT ed è un protocollo per il riassemblaggio del traffico di rete.
Al momento sono disponibili online diverse opzioni per i server TURN, sia come applicazioni self-hosted (come il progetto open source COTURN) sia come servizi forniti dal cloud.
Una volta che hai un server TURN disponibile online, ti serve solo il RTCConfiguration
corretto per consentirne l'utilizzo alla tua applicazione client. Il seguente snippet di codice illustra una configurazione di esempio per un RTCPeerConnection
in 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à username
e
credential
per proteggere l'accesso al server. Questi valori sono obbligatori quando ci si connette a un server TURN.
const iceConfiguration = {
iceServers: [
{
urls: 'turn:my-turn-server.mycompany.com:19403',
username: 'optional-username',
credential: 'auth-token'
}
]
}
const peerConnection = new RTCPeerConnection(iceConfiguration);