RTCPeerConnection
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2017.
* Some parts of this feature may have varying levels of support.
Die RTCPeerConnection
-Schnittstelle repräsentiert eine WebRTC-Verbindung zwischen dem lokalen Computer und einem entfernten Peer. Sie bietet Methoden, um sich mit einem entfernten Peer zu verbinden, die Verbindung zu pflegen und zu überwachen und die Verbindung zu schließen, wenn sie nicht mehr benötigt wird.
Konstruktor
RTCPeerConnection()
-
Gibt eine neue
RTCPeerConnection
zurück, die eine Verbindung zwischen dem lokalen Gerät und einem entfernten Peer darstellt.
Instanz-Eigenschaften
Erbt auch Eigenschaften von EventTarget
.
canTrickleIceCandidates
Schreibgeschützt-
Gibt einen booleschen Wert zurück, der anzeigt, ob der entfernte Peer trickle ICE-Kandidaten akzeptieren kann oder nicht.
connectionState
Schreibgeschützt-
Gibt den aktuellen Status der Peer-Verbindung an, indem einer der folgenden Zeichenfolgen zurückgegeben wird:
new
,connecting
,connected
,disconnected
,failed
oderclosed
. currentLocalDescription
Schreibgeschützt-
Gibt ein
RTCSessionDescription
-Objekt zurück, das das lokale Ende der Verbindung beschreibt, wie es zuletzt erfolgreich ausgehandelt wurde, seit das letzte Mal, als dieseRTCPeerConnection
das Verhandeln und Verbinden mit einem entfernten Peer abgeschlossen hat. Ebenfalls enthalten ist eine Liste von ICE-Kandidaten, die möglicherweise bereits vom ICE-Agenten generiert wurden, seit das Angebot oder die Antwort, die durch die Beschreibung repräsentiert wird, erstmals instanziiert wurde. currentRemoteDescription
Schreibgeschützt-
Gibt ein
RTCSessionDescription
-Objekt zurück, das das entfernte Ende der Verbindung beschreibt, wie es zuletzt erfolgreich ausgehandelt wurde, seit das letzte Mal, als dieseRTCPeerConnection
das Verhandeln und Verbinden mit einem entfernten Peer abgeschlossen hat. Ebenfalls enthalten ist eine Liste von ICE-Kandidaten, die möglicherweise bereits vom ICE-Agenten generiert wurden, seit das Angebot oder die Antwort, die durch die Beschreibung repräsentiert wird, erstmals instanziiert wurde. iceConnectionState
Schreibgeschützt-
Gibt eine Zeichenfolge zurück, die den Status des ICE-Agenten angibt, der mit dieser RTCPeerConnection verbunden ist. Es kann einer der folgenden Werte sein:
new
,checking
,connected
,completed
,failed
,disconnected
oderclosed
. iceGatheringState
Schreibgeschützt-
Gibt eine Zeichenfolge zurück, die den ICE-Sammelstatus der Verbindung beschreibt. Dies lässt Sie beispielsweise erkennen, wann die Sammlung von ICE-Kandidaten abgeschlossen ist. Mögliche Werte sind:
new
,gathering
odercomplete
. 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, wirdnull
zurückgegeben. peerIdentity
Schreibgeschützt-
Gibt einen
Promise
zurück, der zu einerRTCIdentityAssertion
aufgelöst wird, die eine Zeichenfolge enthält, die den entfernten Peer identifiziert. Sobald dieser Promise erfolgreich aufgelöst wird, ist die resultierende Identität die Ziel-Peer-Identität und wird sich für die Dauer der Verbindung nicht ändern. pendingLocalDescription
Schreibgeschützt-
Gibt ein
RTCSessionDescription
-Objekt zurück, das eine anstehende Konfigurationsänderung für das lokale Ende der Verbindung beschreibt. Dies beschreibt nicht die Verbindung in ihrem aktuellen Zustand, sondern wie sie möglicherweise in naher Zukunft existieren könnte. pendingRemoteDescription
Schreibgeschützt-
Gibt ein
RTCSessionDescription
-Objekt zurück, das eine anstehende Konfigurationsänderung für das entfernte Ende der Verbindung beschreibt. Dies beschreibt nicht die Verbindung in ihrem aktuellen Zustand, sondern wie sie möglicherweise in naher Zukunft existieren könnte. remoteDescription
Schreibgeschützt-
Gibt ein
RTCSessionDescription
-Objekt zurück, das die Sitzung, einschließlich Konfigurations- und Medieninformationen, für das entfernte Ende der Verbindung beschreibt. Wenn dies noch nicht festgelegt wurde, wirdnull
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 Wertnull
. signalingState
Schreibgeschützt-
Gibt eine Zeichenfolge zurück, die den Zustand des Signalisierungsprozesses auf dem lokalen Ende der Verbindung beschreibt, während eine Verbindung zu einem anderen Peer aufgebaut oder wiederhergestellt wird. Es kann einer der folgenden Werte sein:
stable
,have-local-offer
,have-remote-offer
,have-local-pranswer
,have-remote-pranswer
oderclosed
.
Statische Methoden
RTCPeerConnection.generateCertificate()
-
Erstellt ein X.509-Zertifikat und den entsprechenden privaten Schlüssel und gibt einen
Promise
zurück, der nach der Erzeugung mit dem neuenRTCCertificate
aufgelöst wird.
Instanz-Methoden
Erbt auch Methoden von EventTarget
.
addIceCandidate()
-
Fügt der entfernten Beschreibung des
RTCPeerConnection
, die den Zustand des entfernten Endes der Verbindung beschreibt, einen neuen Remote-Kandidaten hinzu. addTrack()
-
Fügt ein neues
MediaStreamTrack
zur Menge der Spuren hinzu, die an den anderen Peer übertragen werden. addTransceiver()
-
Erstellt einen neuen
RTCRtpTransceiver
und fügt ihn der Menge der Transceiver hinzu, die mit der Verbindung verbunden sind. Jeder Transceiver stellt einen bidirektionalen Stream dar, mit einemRTCRtpSender
und einemRTCRtpReceiver
, die damit verbunden sind. close()
-
Schließt die aktuelle Peer-Verbindung.
createAnswer()
-
Leitet die Erstellung einer SDP-Antwort auf ein von einem entfernten Peer erhaltenes Angebot während der Angebot/Antwort-Aushandlung einer WebRTC-Verbindung ein. Die Antwort enthält Informationen über alle Medien, die bereits an die Sitzung angehängt sind, von den Browser unterstützte Codecs und Optionen sowie alle bereits gesammelten ICE-Kandidaten.
createDataChannel()
-
Leitet die Erstellung eines neuen Kanals ein, der mit dem entfernten Peer verknüpft ist, über den jede Art von Daten übertragen werden kann. Dies kann nützlich sein für Back-Channel-Inhalte, wie Bilder, Dateitransfer, Text-Chat, Spielaktualisierungspakete usw.
createOffer()
-
Leitet die Erstellung eines SDP-Angebots ein, um eine neue WebRTC-Verbindung zu einem entfernten Peer zu starten. Das SDP-Angebot enthält Informationen über alle
MediaStreamTrack
-Objekte, die bereits an die WebRTC-Sitzung angehängt sind, vom Browser unterstützte Codecs und Optionen sowie alle Kandidaten, die bereits vom ICE-Agenten gesammelt wurden, um über den Signalisierungskanal an einen potenziellen Peer gesendet zu werden, 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()
-
Leitet das Sammeln einer Identitätsaussage ein und gibt einen
Promise
zurück, der zu einer als Zeichenfolge codierten Identitätsaussage aufgelöst wird. Dies hat nur Auswirkungen, wennsignalingState
nichtclosed
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 einer Spur verantwortlich ist. getStats()
-
Gibt einen
Promise
zurück, der mit Daten aufgelöst wird, die Statistiken über entweder die gesamte Verbindung oder über das angegebeneMediaStreamTrack
bereitstellen. getTransceivers()
-
Gibt eine Liste aller
RTCRtpTransceiver
-Objekte zurück, die zum Senden und Empfangen von Daten auf der Verbindung verwendet werden. removeTrack()
-
Weist das lokale Ende der Verbindung an, das Senden von Medien von der angegebenen Spur zu stoppen, ohne den entsprechenden
RTCRtpSender
aus der Liste der Sender zu entfernen, wie durchgetSenders()
berichtet. Wenn die Spur bereits gestoppt ist oder nicht in der Senderliste der Verbindung enthalten ist, hat diese Methode keine Wirkung. restartIce()
-
Ermöglicht es, das Sammeln von ICE-Kandidaten an beiden Enden der Verbindung problemlos erneut anzufordern. Dies vereinfacht den Prozess, indem die gleiche Methode entweder vom Anrufer oder vom Empfänger verwendet werden kann, um einen ICE-Neustart auszulösen.
setConfiguration()
-
Setzt die aktuelle Konfiguration der Verbindung basierend auf den in dem angegebenen Objekt enthaltenen Werten. Dadurch können Sie die von der Verbindung verwendeten ICE-Server ändern und welche Transportpolitiken verwendet werden sollen.
setIdentityProvider()
-
Setzt den Identity Provider (IdP) auf das gegebene Triplett: dessen Name, das Protokoll, das zur Kommunikation mit ihm verwendet wird, und ein Benutzername. Das Protokoll und der Benutzername sind optional.
setLocalDescription()
-
Ändert die mit der Verbindung verknüpfte lokale Beschreibung. Diese Beschreibung gibt die Eigenschaften des lokalen Endes der Verbindung an, einschließlich des Medienformats. Es gibt einen
Promise
zurück, der erfüllt wird, sobald die Beschreibung asynchron geändert wurde. setRemoteDescription()
-
Setzt die angegebene Sitzungsbeschreibung als aktuelles Angebot oder Antwort des entfernten Peers. Die Beschreibung gibt die Eigenschaften des entfernten Endes der Verbindung an, einschließlich des Medienformats. Es gibt einen
Promise
zurück, der erfüllt wird, sobald die Beschreibung asynchron geändert wurde.
Veraltete Methoden
addStream()
Veraltet Nicht standardisiert-
Fügt einen
MediaStream
als lokale Quelle für Audio oder Video hinzu. Anstelle dieser veralteten Methode sollten SieaddTrack()
einmal für jede Spur verwenden, die Sie an den entfernten Peer senden möchten. createDTMFSender()
Veraltet Nicht standardisiert-
Erstellt einen neuen
RTCDTMFSender
, der mit einem bestimmtenMediaStreamTrack
assoziiert ist und in der Lage ist, DTMF-Telefoniesignalisierung über die Verbindung zu senden. removeStream()
Veraltet Nicht standardisiert-
Entfernt einen
MediaStream
als lokale Quelle für Audio oder Video. Da diese Methode veraltet ist, sollten Sie stattdessenremoveTrack()
verwenden.
Ereignisse
Hören Sie diese Ereignisse mit addEventListener()
oder durch Zuweisung eines Ereignis-Listeners zur oneventname
-Eigenschaft dieser Schnittstelle ab.
connectionstatechange
-
Wird gesendet, wenn sich der allgemeine Verbindungsstatus der
RTCPeerConnection
ändert. datachannel
-
Wird gesendet, wenn der entfernte Peer einen
RTCDataChannel
zur Verbindung hinzufügt. icecandidate
-
Wird gesendet, um anzufordern, dass der angegebene Kandidat an den entfernten Peer übertragen wird.
icecandidateerror
-
Wird an die Verbindung gesendet, wenn ein Fehler während der Sammlung von ICE-Kandidaten auftritt. Das Ereignis beschreibt den Fehler.
iceconnectionstatechange
-
Wird gesendet, wenn sich der Zustand der ICE-Verbindung ändert, beispielsweise wenn sie getrennt wird.
icegatheringstatechange
-
Wird gesendet, wenn sich der Sammlungszustand der ICE-Schicht, wie durch
iceGatheringState
reflektiert, ändert. Dies zeigt, ob die ICE-Aushandlung noch nicht begonnen hat (new
), Kandidaten sammeln begonnen hat (gathering
) oder abgeschlossen ist (complete
). negotiationneeded
-
Wird gesendet, wenn die Aushandlung oder Nachverhandlung der ICE-Verbindung durchgeführt werden muss; Dies kann sowohl beim erstmaligen Öffnen einer Verbindung als auch bei der Anpassung an sich ändernde Netzwerkbedingungen passieren. Der Empfänger sollte darauf reagieren, indem er ein Angebot erstellt und es an den anderen Peer sendet.
signalingstatechange
-
Wird gesendet, wenn sich der Signalisierungszustand der ICE-Verbindung ändert.
track
-
Wird gesendet, nachdem eine neue Spur zu einer der
RTCRtpReceiver
-Instanzen hinzugefügt wurde, die die Verbindung ausmachen.
Veraltete Ereignisse
addstream
Veraltet Nicht standardisiert-
Wird gesendet, wenn ein neuer
MediaStream
zur Verbindung hinzugefügt wurde. Statt auf dieses veraltete Ereignis zu hören, sollten Sie auftrack
-Ereignisse hören; eines wird für jedeMediaStreamTrack
, die der Verbindung hinzugefügt wird, gesendet. removestream
Veraltet Nicht standardisiert-
Wird gesendet, wenn ein
MediaStream
aus der Verbindung entfernt wird. Statt auf dieses veraltete Ereignis zu hören, sollten Sie aufremovetrack
-Ereignisse auf jedem Stream hören.
Spezifikationen
Specification |
---|
WebRTC: Real-Time Communication in Browsers> # interface-definition> |
Browser-Kompatibilität
Loading…
Siehe auch
- https://github.com/jesup/nightly-gupshup/blob/master/static/js/chat.js
- Erste Schritte mit WebRTC
- TutorRoom: Node.js HTML-Videoaufnahme, Peer-to-Peer-Video- und Dateifreigabeanwendung (Quellcode auf GitHub)