Google verpflichtet sich Rassen Eigenkapital für Black Gemeinden voranzutreiben. Siehe wie.
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Peer-Verbindungen

Die RTCPeerConnection ist die zentrale Schnittstelle in der WebRTC API. Er stellt die Verbindung zwischen dem lokalen und Remote-Peer und provice alle Funktionen und Ereignisse notwendig, um die Verbindung herzustellen.

Die Schaffung eines Peer-Verbindung

Anwendungen WebRTC Funktionalität Umsetzung werden in der Regel stark auf dem verlassen RTCPeerConnection Schnittstelle. Von dem Anrufer Seite (das heißt, die Einleitung die Peer-Verbindung), wobei das Verfahren eine Verbindung herzustellen ist in der Regel folgende:

  1. Erstellen Sie eine neue RTCPeerConnection Instanz mit der entsprechenden ICE - Konfiguration.
  2. Erstellen Sie eine lokale SDP - Beschreibung mit RTCPeerConnection.createOffer() .
  3. Stellen Sie die lokale SDP - Beschreibung mit RTCPeerConnection.setLocalDescription() .
  4. Transfer (mit einem Signalisierungs-Service), um die lokale SDP-Beschreibung zu dem Remote-Peer.
  5. Registrieren Sie einen Listener für icecandidate Ereignisse auf dem RTCPeerConnection .
  6. Für jede icecandidate Ereignisse, übertragen sie an den entfernten Peer (einen Signalisierungsdienst verwendet wird ).
  7. Warten für eine ankommende Fern SDP - Beschreibung von dem Signalisierungsdienst und stellt es unter Verwendung von RTCPeerConnection.setRemoteDescription() .
  8. Warten für ankommende Fern ICE Kandidaten aus dem Signalisierungs - Service und füge sie unter Verwendung von RTCPeerConnection.addIceCandidate()

Auf der Angerufene Seite ist das Verfahren ein wenig anders.

  1. Erstellen Sie eine neue RTCPeerConnection Instanz mit der entsprechenden ICE - Konfiguration.
  2. Warten für eine ankommende Fern SDP - Beschreibung von dem Signalisierungsdienst und stellt es unter Verwendung von RTCPeerConnection.setRemoteDescription() .
  3. Erstellen Sie eine Antwort für die Remote - SDP - Beschreibung durch den Aufruf RTCPeerConnection.createAnswer() .
  4. Transfer (mit einem Signalisierungs-Service), um die Antwort auf den Remote-Peer.
  5. Registrieren Sie einen Listener für icecandidate Ereignisse auf dem RTCPeerConnection .
  6. Für jede icecandidate Ereignisse, übertragen sie an den entfernten Peer (einen Signalisierungsdienst verwendet wird ).
  7. Warten für ankommende Fern ICE Kandidaten aus dem Signalisierungs - Service und füge sie unter Verwendung von RTCPeerConnection.addIceCandidate()

Die Herausforderung bei diesem API ist, dass die meisten dieser Operationen asynchron sind, was oft die tatsächliche Implementierung einer komplizierten WebRTC Anwendung machen. Viele der Funktionen geben einen Promise , das gelöst werden muss , bevor der nächste Schritt in dem Prozess fortgesetzt werden kann.

Es wird empfohlen, wenn eine Anwendung mit dieser API Implementierung, die Entwickler nutzen async und await stattdessen Hörer der Registrierung (mit Promise.then() ), da dies Ihr Code macht leicht zu folgen. Betrachten Sie das folgende Beispiel:

 function createAndSendOffer(peerConnection, signallingService) {
    peerConnection.createOffer()
                  .then(offer => {
                      signallingService.send({
                          type: 'offer',
                          data: offer
                      });
                  });
}
 

Wenn das Schreiben des Codes oben mit async und await , erhalten wir folgendes:

 async function createAndSendOffer(peerConnection, signallingService) {
    const offer = await peerConnection.createOffer();
    signallingService.send({
        type: 'offer',
        data: offer
    });
}