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 stellt eine WebRTC-Verbindung zwischen dem lokalen Computer und einem Remote-Peer dar. Sie bietet Methoden zum Herstellen einer Verbindung mit einem Remote-Peer, zum Aufrechterhalten und Überwachen der Verbindung sowie zum Schließen der Verbindung, 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 darstellt.

Instanzeigenschaften

Erbt auch Eigenschaften von EventTarget.

canTrickleIceCandidates Schreibgeschützt

Gibt einen booleschen Wert zurück, der angibt, ob der Remote-Peer trickled 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 zuletzt erfolgreich ausgehandelt wurde, seit diese RTCPeerConnection zuletzt die Aushandlung und Verbindung mit einem Remote-Peer abgeschlossen hat. Ebenfalls enthalten ist eine Liste aller ICE-Kandidaten, die der ICE-Agent möglicherweise bereits generiert hat, seit das durch die Beschreibung dargestellte 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 zuletzt erfolgreich ausgehandelt wurde, seit diese RTCPeerConnection zuletzt die Aushandlung und Verbindung mit einem Remote-Peer abgeschlossen hat. Ebenfalls enthalten ist eine Liste aller ICE-Kandidaten, die der ICE-Agent möglicherweise bereits generiert hat, seit das durch die Beschreibung dargestellte Angebot oder die Antwort erstmals instanziiert wurde.

iceConnectionState Schreibgeschützt

Gibt einen String zurück, der den Zustand des dieser RTCPeerConnection zugeordneten ICE-Agenten beschreibt. 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-Sammlungszustand der Verbindung beschreibt. Dadurch 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, welche die Sitzung für das lokale Ende der Verbindung beschreibt. Falls 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 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 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. Falls 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. Falls 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 beim Verbinden oder erneuten Verbinden 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 zugehörigen privaten Schlüssel und gibt ein Promise zurück, das nach dessen Generierung mit dem neuen RTCCertificate aufgelöst wird.

Instanzmethoden

Erbt auch 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 der Verbindung zugeordneten Transceiver hinzu. Jeder Transceiver stellt einen bidirektionalen Stream dar, 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 Angebot/Antwort-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 alle bereits gesammelten ICE-Kandidaten.

createDataChannel()

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

createOffer()

Startet die Erstellung eines SDP-Angebots, um eine neue WebRTC-Verbindung mit 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 gesammelten Kandidaten, damit es über den Signalisierungskanal an einen potenziellen Peer gesendet wird, um 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ätsbehauptung und gibt ein Promise zurück, das zu einer als String codierten Identitätsbehauptung 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 darstellt.

getSenders()

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

getStats()

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

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, keine Medien vom angegebenen Track mehr zu senden, ohne den entsprechenden RTCRtpSender tatsächlich aus der von getSenders() gemeldeten Liste der Sender zu entfernen. Falls der Track bereits gestoppt wurde oder nicht in der Senderliste der Verbindung enthalten ist, hat diese Methode keine Wirkung.

restartIce()

Ermöglicht es Ihnen, einfach anzufordern, dass die Sammlung von ICE-Kandidaten 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 anhand der im angegebenen Objekt enthaltenen Werte fest. Dadurch können Sie die von der Verbindung verwendeten ICE-Server und die zu verwendenden Transportrichtlinien ändern.

setIdentityProvider()

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

setLocalDescription()

Ändert die mit der Verbindung verknüpfte 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 Audio- oder Videoquelle hinzu. Statt diese veraltete Methode zu verwenden, sollten Sie addTrack() jeweils 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-Telefoniesignalisierung über die Verbindung senden kann.

removeStream()

Entfernt einen MediaStream als lokale Audio- oder Videoquelle. Da diese Methode veraltet ist, sollten Sie stattdessen removeTrack() verwenden.

Ereignisse

Sie können diese Ereignisse mit addEventListener() überwachen oder indem Sie der oneventname-Eigenschaft dieser Schnittstelle einen Ereignis-Listener zuweisen.

connectionstatechange

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

datachannel

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

icecandidate

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

icecandidateerror

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

iceconnectionstatechange

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

icegatheringstatechange

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

negotiationneeded

Wird gesendet, wenn die Aushandlung oder erneute Aushandlung der ICE-Verbindung durchgeführt werden muss; dies kann sowohl beim erstmaligen Öffnen einer Verbindung als auch dann geschehen, wenn eine Anpassung an veränderte Netzwerkbedingungen erforderlich ist. Der Empfänger sollte mit der Erstellung eines Angebots und dessen Versand an den anderen Peer reagieren.

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 removetrack-Ereignisse für jeden Stream warten.

Beispiele

Beispielcode finden Sie unter WebRTC samples > RTCPeerConnection.

Spezifikationen

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

Browser-Kompatibilität

Siehe auch