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.
URLs für STUN und/oder drehen Server (optional), spezifiziert durch einen WebRTC app im iceServers Konfigurationsobjekt, das das erste Argument für den Konstruktor RTCPeerConnection ist.
Beispiel für die Verwendung mehr, dass die 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);
Sobald RTCPeerConnection diese Informationen hat, ist nun mal die ICE Magie automatisch: RTCPeerConnection verwendet den ICE Rahmen den besten Weg zwischen den Peers zu erarbeiten, mit STUN arbeiten und TURN-Server wie nötig.
STUN: STUN-Server im öffentlichen Internet leben und haben eine einfache Aufgabe: Überprüfen Sie die IP: Port-Adresse einer eingehenden Anfrage (von einer Anwendung hinter einem NAT ausgeführt wird) und zurück als Antwort die Adresse senden. Mit anderen Worten, die Anwendung verwendet einen STUN-Server, um ihren IP: -Port aus einer öffentlichen Perspektive zu entdecken. Dieser Prozess ermöglicht es einem WebRTC-Peer, eine öffentlich zugängliche Adresse für sich selbst zu erhalten und diese dann über einen Signalisierungsmechanismus an einen anderen Peer weiterzuleiten, um eine direkte Verbindung aufzubauen. (In der Praxis arbeiten unterschiedliche NATs auf unterschiedliche Weise, und es können mehrere NAT Schichten sein, aber das Prinzip ist immer noch die gleiche.)
TURN: TURN RTCPeerConnection versucht, die direkte Kommunikation zwischen den Peers über UDP einzurichten. Wenn dies fehlschlägt, greift RTCPeerConnection auf TCP zurück. Wenn dies fehlschlägt, können TURN-Server als Fallback verwendet werden, um Daten zwischen Endpunkten weiterzuleiten.
Nur um zu wiederholen: TURN wird verwendet, um Audio/Video/Daten-Streaming zwischen Peers zu übertragen, keine Signalisierung von Daten!
TURN-Server haben öffentliche Adressen, so dass sie von Peers kontaktiert werden können, selbst wenn die Peers hinter Firewalls oder Proxys stehen. TURN-Server haben eine konzeptionell einfache Aufgabe - um einen Stream weiterzuleiten - aber im Gegensatz zu STUN-Servern verbrauchen sie inhärent viel Bandbreite. Mit anderen Worten, TURN-Server müssen stärker sein.
siehe this
Ich habe Ihre Antwort aktualisiert, weil ich dachte, sie sei hilfreich, da Sie mir gezeigt haben, wie Sie das Array erstellen, um mehrere STUN- oder TURN-Server einzurichten. Aber ich wusste schon, was ein STUN und was ein TURN-Server ist. Ich möchte wissen, ob es nützlich ist, mehrere TURN-Server oder mehrere STUN-Server einzurichten (aus Gründen der Performance wird mein Programm den Server mit der geringsten Latenz auswählen, kann er feststellen, wann ein TURN-Server offline ist und auswählt) der nächste, wenn ja wie lange dauert das ..). Das Fehlen dieser Informationen war, warum ich nicht akzeptierte. Vielleicht war meine Frage einfach zu unspezifisch. – spacecoyote
Dies sind die tatsächlichen Anmeldeinformationen, die Sie geschrieben haben, ich bin mir nicht sicher, wie viel Schaden es Ihnen zufügen kann, aber Sie sollten es aktualisieren: P –