Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

RTCPeerConnection

Baseline
Weitgehend verfügbar
*

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2017 browserübergreifend verfügbar.

* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.

Die Schnittstelle RTCPeerConnection repräsentiert eine WebRTC-Verbindung zwischen dem lokalen Computer und einem Remote-Peer. Sie stellt Methoden bereit, um eine Verbindung mit einem Remote-Peer herzustellen, die Verbindung aufrechtzuerhalten und zu überwachen sowie sie zu schließen, wenn sie nicht mehr benötigt wird.

EventTarget RTCPeerConnection

Konstruktor

RTCPeerConnection()

Gibt eine neue RTCPeerConnection zurück, die eine Verbindung zwischen dem lokalen Gerät und einem Remote-Peer repräsentiert.

Instanzeigenschaften

Erbt außerdem Eigenschaften von EventTarget.

canTrickleIceCandidates Schreibgeschützt

Gibt einen booleschen Wert zurück, der angibt, ob der Remote-Peer trickle ICE candidates akzeptieren kann.

connectionState Schreibgeschützt

Gibt den aktuellen Zustand der Peer-Verbindung an, indem einer der folgenden Strings zurückgegeben wird: new, connecting, connected, disconnected, failed oder closed.

currentLocalDescription Schreibgeschützt

Gibt ein RTCSessionDescription-Objekt zurück, das das lokale Ende der Verbindung so beschreibt, wie es seit dem letzten erfolgreichen Aushandeln und Verbinden dieser RTCPeerConnection mit einem Remote-Peer zuletzt ausgehandelt wurde. Außerdem ist eine Liste aller ICE-Kandidaten enthalten, die der ICE-Agent möglicherweise bereits generiert hat, seit das durch die Beschreibung repräsentierte Angebot oder die Antwort erstmals instanziiert wurde.

currentRemoteDescription Schreibgeschützt

Gibt ein RTCSessionDescription-Objekt zurück, das das Remote-Ende der Verbindung so beschreibt, wie es seit dem letzten erfolgreichen Aushandeln und Verbinden dieser RTCPeerConnection mit einem Remote-Peer zuletzt ausgehandelt wurde. Außerdem ist eine Liste aller ICE-Kandidaten enthalten, die der ICE-Agent möglicherweise bereits generiert hat, seit das durch die Beschreibung repräsentierte Angebot oder die Antwort erstmals instanziiert wurde.

iceConnectionState Schreibgeschützt

Gibt einen String zurück, der den Zustand des dieser RTCPeerConnection zugeordneten ICE-Agenten angibt. Er kann einen der folgenden Werte haben: new, checking, connected, completed, failed, disconnected oder closed.

iceGatheringState Schreibgeschützt

Gibt einen String zurück, der den ICE-Erfassungszustand der Verbindung beschreibt. Damit können Sie beispielsweise erkennen, wann die Sammlung von ICE-Kandidaten abgeschlossen ist. Mögliche Werte sind: new, gathering oder complete.

idpLoginUrl Schreibgeschützt

Gibt einen String zurück, der den Endpunkt enthält, zu dem die Anwendung navigieren kann, um Benutzer beim Identitätsanbieter (IdP) anzumelden. Kann null sein, wenn keine Anmeldung erforderlich ist.

localDescription Schreibgeschützt

Gibt eine RTCSessionDescription zurück, die die Sitzung für das lokale Ende der Verbindung beschreibt. Wenn sie noch nicht festgelegt wurde, wird null zurückgegeben.

peerIdentity Schreibgeschützt

Gibt ein Promise zurück, das zu einer RTCIdentityAssertion aufgelöst wird, die einen String zur Identifizierung des Remote-Peers enthält. Sobald dieses Promise erfolgreich aufgelöst wurde, ist die resultierende Identität die Ziel-Peer-Identität und ändert sich für die Dauer der Verbindung nicht.

pendingLocalDescription Schreibgeschützt

Gibt ein RTCSessionDescription-Objekt zurück, das eine ausstehende Konfigurationsänderung für das lokale Ende der Verbindung beschreibt. Dies beschreibt nicht die Verbindung in ihrem aktuellen Zustand, sondern so, wie sie in naher Zukunft bestehen könnte.

pendingRemoteDescription Schreibgeschützt

Gibt ein RTCSessionDescription-Objekt zurück, das eine ausstehende Konfigurationsänderung für das Remote-Ende der Verbindung beschreibt. Dies beschreibt nicht die Verbindung in ihrem aktuellen Zustand, sondern so, wie sie in naher Zukunft bestehen könnte.

remoteDescription Schreibgeschützt

Gibt ein RTCSessionDescription-Objekt zurück, das die Sitzung einschließlich Konfigurations- und Medieninformationen für das Remote-Ende der Verbindung beschreibt. Wenn dies noch nicht festgelegt wurde, wird null zurückgegeben.

sctp Schreibgeschützt

Gibt ein RTCSctpTransport-Objekt zurück, das die SCTP-Transportschicht beschreibt, über die SCTP-Daten gesendet und empfangen werden. Wenn SCTP nicht ausgehandelt wurde, ist dieser Wert null.

signalingState Schreibgeschützt

Gibt einen String zurück, der den Zustand des Signalisierungsprozesses am lokalen Ende der Verbindung während des Verbindens oder erneuten Verbindens mit einem anderen Peer beschreibt. Er hat einen der folgenden Werte: stable, have-local-offer, have-remote-offer, have-local-pranswer, have-remote-pranswer oder closed.

Statische Methoden

RTCPeerConnection.generateCertificate()

Erstellt ein X.509-Zertifikat und den entsprechenden privaten Schlüssel und gibt ein Promise zurück, das nach der Generierung zum neuen RTCCertificate aufgelöst wird.

Instanzmethoden

Erbt außerdem Methoden von EventTarget.

addIceCandidate()

Fügt der Remote-Beschreibung der RTCPeerConnection, die den Zustand des Remote-Endes der Verbindung beschreibt, einen neuen Remote-Kandidaten hinzu.

addTrack()

Fügt der Menge der Tracks, die an den anderen Peer übertragen werden, einen neuen MediaStreamTrack hinzu.

addTransceiver()

Erstellt einen neuen RTCRtpTransceiver und fügt ihn der Menge der mit der Verbindung verknüpften Transceiver hinzu. Jeder Transceiver repräsentiert einen bidirektionalen Stream, dem sowohl ein RTCRtpSender als auch ein RTCRtpReceiver zugeordnet sind.

close()

Schließt die aktuelle Peer-Verbindung.

createAnswer()

Startet die Erstellung einer SDP-Antwort auf ein Angebot, das während der Offer/Answer-Aushandlung einer WebRTC-Verbindung von einem Remote-Peer empfangen wurde. Die Antwort enthält Informationen über alle bereits an die Sitzung angehängten Medien, vom Browser unterstützte Codecs und Optionen sowie bereits erfasste ICE-Kandidaten.

createDataChannel()

Startet die Erstellung eines neuen Kanals, der mit dem Remote-Peer verknüpft ist und über den Daten jeder Art übertragen werden können. Dies kann für Backchannel-Inhalte wie Bilder, Dateiübertragungen, Textchats, Spielaktualisierungspakete und Ähnliches nützlich sein.

createOffer()

Startet die Erstellung eines SDP-Angebots mit dem Ziel, eine neue WebRTC-Verbindung zu einem Remote-Peer zu beginnen. Das SDP-Angebot enthält Informationen über alle bereits an die WebRTC-Sitzung angehängten MediaStreamTrack-Objekte, vom Browser unterstützte Codecs und Optionen sowie alle bereits vom ICE-Agenten erfassten Kandidaten, um über den Signalisierungskanal an einen potenziellen Peer gesendet zu werden und eine Verbindung anzufordern oder die Konfiguration einer bestehenden Verbindung zu aktualisieren.

getConfiguration()

Gibt ein Objekt zurück, das die aktuelle Konfiguration der Verbindung angibt.

getIdentityAssertion()

Startet die Erfassung einer Identitätsassertion und gibt ein Promise zurück, das zu einer als String codierten Identitätsassertion aufgelöst wird. Dies hat nur eine Wirkung, wenn signalingState nicht closed ist.

getReceivers()

Gibt ein Array von RTCRtpReceiver-Objekten zurück, von denen jedes einen RTP-Empfänger repräsentiert.

getSenders()

Gibt ein Array von RTCRtpSender-Objekten zurück, von denen jedes den RTP-Sender repräsentiert, der für die Übertragung der Daten eines Tracks verantwortlich ist.

getStats()

Gibt ein Promise zurück, das zu Daten mit Statistiken über entweder die gesamte Verbindung oder den angegebenen MediaStreamTrack aufgelöst wird.

getTransceivers()

Gibt eine Liste aller RTCRtpTransceiver-Objekte zurück, die zum Senden und Empfangen von Daten über die Verbindung verwendet werden.

removeTrack()

Weist das lokale Ende der Verbindung an, das Senden von Medien des angegebenen Tracks zu beenden, ohne den entsprechenden RTCRtpSender tatsächlich aus der Liste der Sender zu entfernen, wie sie von getSenders() gemeldet wird. Wenn der Track bereits gestoppt wurde oder sich nicht in der Senderliste der Verbindung befindet, hat diese Methode keine Wirkung.

restartIce()

Ermöglicht es Ihnen, einfach anzufordern, dass die ICE-Kandidatenerfassung an beiden Enden der Verbindung erneut durchgeführt wird. Dies vereinfacht den Prozess, da sowohl der Aufrufer als auch der Empfänger dieselbe Methode verwenden können, um einen ICE-Neustart auszulösen.

setConfiguration()

Legt die aktuelle Konfiguration der Verbindung auf Grundlage der im angegebenen Objekt enthaltenen Werte fest. Damit können Sie die von der Verbindung verwendeten ICE-Server und die zu verwendenden Transportrichtlinien ändern.

setIdentityProvider()

Legt den Identity Provider (IdP) auf das durch die Parameter angegebene Tripel fest: seinen Namen, das für die Kommunikation mit ihm verwendete Protokoll und einen Benutzernamen. Das Protokoll und der Benutzername sind optional.

setLocalDescription()

Ändert die der Verbindung zugeordnete lokale Beschreibung. Diese Beschreibung legt die Eigenschaften des lokalen Endes der Verbindung fest, einschließlich des Medienformats. Sie gibt ein Promise zurück, das erfüllt wird, sobald die Beschreibung asynchron geändert wurde.

setRemoteDescription()

Legt die angegebene Sitzungsbeschreibung als aktuelles Angebot oder aktuelle Antwort des Remote-Peers fest. Die Beschreibung legt die Eigenschaften des Remote-Endes der Verbindung fest, einschließlich des Medienformats. Sie gibt ein Promise zurück, das erfüllt wird, sobald die Beschreibung asynchron geändert wurde.

Veraltete Methoden

addStream()

Fügt einen MediaStream als lokale Quelle für Audio oder Video hinzu. Statt diese veraltete Methode zu verwenden, sollten Sie addTrack() einmal für jeden Track verwenden, den Sie an den Remote-Peer senden möchten.

createDTMFSender()

Erstellt einen neuen RTCDTMFSender, der einem bestimmten MediaStreamTrack zugeordnet ist und DTMF-Telefonsignalisierung über die Verbindung senden kann.

removeStream()

Entfernt einen MediaStream als lokale Quelle für Audio oder Video. Da diese Methode veraltet ist, sollten Sie stattdessen removeTrack() verwenden.

Ereignisse

Überwachen Sie diese Ereignisse mit addEventListener() oder indem Sie der oneventname-Eigenschaft dieser Schnittstelle einen Event-Listener zuweisen.

connectionstatechange

Wird gesendet, wenn sich der allgemeine Verbindungsstatus der RTCPeerConnection ändert.

datachannel

Wird gesendet, wenn der Remote-Peer einen RTCDataChannel zur Verbindung hinzufügt.

icecandidate

Wird gesendet, um anzufordern, dass der angegebene Kandidat an den Remote-Peer übertragen wird.

icecandidateerror

Wird an die Verbindung gesendet, wenn während der Erfassung von ICE-Kandidaten ein Fehler auftritt. Das Ereignis beschreibt den Fehler.

iceconnectionstatechange

Wird gesendet, wenn sich der Zustand der ICE-Verbindung ändert, etwa wenn die Verbindung getrennt wird.

icegatheringstatechange

Wird gesendet, wenn sich der Erfassungszustand der ICE-Schicht, der durch iceGatheringState widergespiegelt wird, ändert. Dies gibt an, ob die ICE-Aushandlung noch nicht begonnen hat (new), mit der Erfassung von Kandidaten begonnen wurde (gathering) oder abgeschlossen ist (complete).

negotiationneeded

Wird gesendet, wenn eine Aushandlung oder erneute Aushandlung der ICE-Verbindung durchgeführt werden muss; dies kann sowohl beim ersten Öffnen einer Verbindung als auch dann auftreten, wenn eine Anpassung an sich ändernde Netzwerkbedingungen erforderlich ist. Der Empfänger sollte darauf reagieren, indem er ein Angebot erstellt und es an den anderen Peer sendet.

signalingstatechange

Wird gesendet, wenn sich der ICE-Signalisierungszustand der Verbindung ändert.

track

Wird gesendet, nachdem ein neuer Track zu einer der RTCRtpReceiver-Instanzen hinzugefügt wurde, aus denen die Verbindung besteht.

Veraltete Ereignisse

addstream

Wird gesendet, wenn ein neuer MediaStream zur Verbindung hinzugefügt wurde. Statt auf dieses veraltete Ereignis zu warten, sollten Sie auf track-Ereignisse warten; für jeden zur Verbindung hinzugefügten MediaStreamTrack wird eines gesendet.

removestream

Wird gesendet, wenn ein MediaStream aus der Verbindung entfernt wird. Statt auf dieses veraltete Ereignis zu warten, sollten Sie auf jedem Stream auf removetrack-Ereignisse warten.

Spezifikationen

Spezifikation
WebRTC: Real-Time Communication in Browsers
# interface-definition

Browser-Kompatibilität

Siehe auch