warum nicht "onicecandidate" zu arbeiten?
Ich habe Schwierigkeiten zu verstehen, webRTC mit PeerConnection und 'onicecandidate" - Veranstaltung.
Soweit ich es verstehe, Sie muss initiieren eine peerconnection mit einem STUN (oder DREHEN) - server, weil es senden Ihnen zurück Ihre EIS-Kandidat für die Kommunikation mit einem anderen peer.
Habe ich schon Beispiele gesehen, verlassen Sie den server-parameter der PeerConnection Objekt aus, welches ich nicht verstehe, aber sagen wir einfach, es muss die server-parameter.
So, wenn ich schreiben Sie den folgenden code:
var pc, ice = { "iceServers": [{ "url": "stun:stun.l.google.com:19302" }] };
if(typeof mozRTCPeerConnection === 'function') {
pc = new mozRTCPeerConnection(ice);
}
else {
console.log('google');
pc = new webkitRTCPeerConnection(ice);
}
pc.onicecandidate = function(event) {
console.log(event);
}
Erwarte ich, dass die "onicecandidate' Ereignis wird ausgelöst, aber es funktioniert nicht. Ich habe versucht, andere öffentliche STUN-Server, aber nichts passiert. Also ich nehme an, es ist wahrscheinlich etwas falsch mit meinem Verständnis 🙂
- Ich bin nicht entierly sicher, warum ich Schreibe es als Kommentar, aber ich denke, Sie haben zu laufen-pc.createOffer, wenn der event-Handler sind setup zu erschaffen, die wirklich ein Kandidat.
- Danke Andreas, ich werde versuchen, das ist sicher. Nach dem Lesen der "Getting Started mit WebRTC' tutorial auf htmlRocks ich den Schluss, dass die Erfassung von EIS Kandidaten-und SDP-Informationen sind unabhängig und verbindliche Prozesse zu erhalten einen remote-stream, aber man kann dort sein.
- Mögliche Duplikate von WebRTC nie feuert onIceCandidate
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die PeerConnection nicht beginnen, sammeln die Kandidaten, bis Sie rufen setLocalDescription(); die Informationen zu setLocalDescription erzählt PeerConnection, wie viele Kandidaten müssen gesammelt werden. (Dieses Verhalten für setLocalDescription angegeben ist, die in Ihrer definition auf http://tools.ietf.org/html/draft-ietf-rtcweb-jsep-03#section-4.2.4)
Hier ist, was eine vollständige flow sieht aus wie für den Aufbau einer Verbindung zwischen zwei PeerConnections im gleichen browser-Fenster (hinzufügen von MediaStreams ausgelassen, um den Fokus auf die Signalisierung):
Da Sie enthalten eine mozPeerConnection in Ihrer Frage, ich werde beachten Sie, dass Firefox nicht aktuell generieren "trickle-Kandidaten'. Dies bedeutet, dass es seinen Kandidaten-Adressen als 'c' - Zeilen in das Angebot/Antwort -, und die onicecandidate callback wird nie aufgerufen werden.
Der Nachteil dieses Ansatzes ist, dass Firefox warten muss, für alle Kandidaten versammelten sich vor der Erstellung seines Angebots/Antwort (ein Prozess, der einbeziehen können, um Kontaktaufnahme mit dem STUN-und TURN-Servern und wartet entweder die Antworten oder für die Anfragen timeout).
createOffer()
Argumente haben sich geändert (jetzt schon mehrmals).