A STUN server is used to get an external network address.
TURN servers are used to relay traffic if direct (peer to peer) connection fails.
URL per STUN e/o girare server sono (opzionalmente) specificati da un app WebRTC nell'oggetto configurazione iceServers che è il primo argomento del costruttore RTCPeerConnection.
esempio di utilizzo di più server:
var ICE_config= {
'iceServers': [
{
'url': 'stun:stun.l.google.com:19302'
},
{
'url': 'turn:192.158.29.39:3478?transport=udp',
'credential': 'JZEOEt2V3Qb0y27GRntt2u2PAYA=',
'username': '28224511:1379330808'
},
{
'url': 'turn:192.158.29.39:3478?transport=tcp',
'credential': 'JZEOEt2V3Qb0y27GRntt2u2PAYA=',
'username': '28224511:1379330808'
}
]
}
pc = new RTCPeerConnection(ICE_config);
volta RTCPeerConnection dispone che l'informazione, la magia ICE avviene automaticamente: RTCPeerConnection utilizza il framework ICE di elaborare il percorso migliore tra coetanei, lavorando con STUN e girare i server come necessario.
STUN: server STUN in diretta su Internet pubblico e hanno un compito semplice: controllare l'IP: indirizzo della porta di una richiesta in ingresso (da un'applicazione in esecuzione dietro un NAT) e inviare l'indirizzo di nuovo come una risposta. In altre parole, l'applicazione utilizza un server STUN per scoprire il suo IP: port da una prospettiva pubblica. Questo processo consente a un peer WebRTC di ottenere un indirizzo pubblicamente accessibile per se stesso, e quindi passarlo a un altro peer tramite un meccanismo di segnalazione, al fine di impostare un collegamento diretto. (In pratica, diversi NATs lavorano in modi diversi, e ci possono essere molteplici strati NAT, ma il principio è sempre lo stesso.)
TURNO: TURNO RTCPeerConnection cerca di impostare la comunicazione diretta tra coetanei oltre UDP. Se ciò non riesce, RTCPeerConnection ricorre a TCP. Se ciò non riesce, i server TURN possono essere usati come fallback, inoltrando i dati tra gli endpoint.
Just to reiterate: TURN viene utilizzato per ritrasmettere lo streaming audio/video/dati tra peer, non i dati di segnalazione!
I server TURN hanno indirizzi pubblici, quindi possono essere contattati dai colleghi anche se i peer sono protetti da firewall o proxy. I server TURN hanno un compito concettualmente semplice - per inoltrare un flusso - ma, a differenza dei server STUN, consumano intrinsecamente molta larghezza di banda. In altre parole, i server TURN devono essere più muscolosi.
vedere this
Ho aggiornato la tua risposta perché ho pensato che fosse utile poiché mi hai mostrato come costruire l'array per impostare diversi server STUN o TURN. Ma sapevo già che STUN e che cos'è un server TURN. Quello che volevo sapere è se è utile impostare diversi server TURN, o diversi server STUN (per ragioni di prestazioni, forse, il mio programma sceglierà il server con la latenza più bassa, sarà in grado di dire quando un server TURN è offline e selezionare il prossimo, se sì, quanto tempo ci vuole ..). La mancanza di questa informazione era il motivo per cui non ho accettato. Forse la mia domanda era semplicemente troppo aspecifica. – spacecoyote
queste sono le credenziali effettive che hai postato, non sono sicuro di quanto male possa farti, ma dovresti aggiornarlo: P –