WebRTC (Web Real-Time Communication) ist eine Technologie, die es Webanwendungen und Websites ermöglicht, Audio- und/oder Videomedien zu erfassen und optional zu streamen sowie beliebige Daten zwischen Browsern auszutauschen, ohne dass ein Vermittler erforderlich ist. Der Satz von Standards, der WebRTC ausmacht, ermöglicht es, Daten auszutauschen und Telekonferenzen peer-to-peer durchzuführen, ohne dass der Benutzer Plug-ins oder eine andere Drittanbieter-Software installieren muss.
WebRTC besteht aus mehreren miteinander verbundenen APIs und Protokollen, die zusammenarbeiten, um dies zu erreichen. Die hier bereitgestellte Dokumentation hilft Ihnen, die Grundlagen von WebRTC zu verstehen, wie Sie sowohl Daten- als auch Medienverbindungen einrichten und verwenden können und mehr.
WebRTC-Konzepte und NutzungWebRTC erfüllt mehrere Zwecke; zusammen mit der Media Capture and Streams API bieten sie leistungsstarke Multimediakapazitäten für das Web, einschlieÃlich Unterstützung für Audio- und Videokonferenzen, Dateiaustausch, Bildschirmfreigabe, Identitätsmanagement und die Schnittstelle zu älteren Telefonsystemen, einschlieÃlich Unterstützung für das Senden von DTMF-Signalen (Tonwahl). Verbindungen zwischen Peers können hergestellt werden, ohne dass spezielle Treiber oder Plug-ins erforderlich sind und oft auch ohne Vermittlungsserver.
Verbindungen zwischen zwei Peers werden durch die Schnittstelle RTCPeerConnection
repräsentiert. Sobald eine Verbindung mit RTCPeerConnection
etabliert und geöffnet wurde, können Medienströme (MediaStream
s) und/oder Datenkanäle (RTCDataChannel
s) zur Verbindung hinzugefügt werden.
Medienströme können beliebig viele Tracks mit Medieninformationen enthalten; Tracks, die durch Objekte basierend auf der Schnittstelle MediaStreamTrack
repräsentiert werden, können eine von mehreren Arten von Mediendaten enthalten, einschlieÃlich Audio, Video und Text (wie Untertitel oder sogar Kapitelnamen). Die meisten Streams bestehen aus mindestens einem Audiotrack und wahrscheinlich auch einem Videotrack und können verwendet werden, um sowohl Live-Medien als auch gespeicherte Medieninformationen (wie einen gestreamten Film) zu senden und zu empfangen.
Sie können die Verbindung zwischen zwei Peers auch verwenden, um beliebige Binärdaten mit der Schnittstelle RTCDataChannel
auszutauschen. Dies kann für Back-Channel-Informationen, Metadaten-Austausch, Spielstatus-Pakete, Dateitransfers oder sogar als Hauptkanal für Datenübertragungen verwendet werden.
WebRTC wird in modernen Browsern im Allgemeinen gut unterstützt, es bleiben jedoch einige Inkompatibilitäten bestehen. Die adapter.js-Bibliothek ist ein Shim, um Apps von diesen Inkompatibilitäten zu isolieren.
WebRTC-ReferenzDa WebRTC Schnittstellen bereitstellt, die zusammenarbeiten, um eine Vielzahl von Aufgaben zu erledigen, haben wir die Referenz nach Kategorie unterteilt. Bitte beachten Sie die Sidebar für eine alphabetische Liste.
Einrichtung und Verwaltung von VerbindungenDiese Schnittstellen, Dictionaries und Typen werden verwendet, um WebRTC-Verbindungen einzurichten, zu öffnen und zu verwalten. Enthalten sind Schnittstellen, die peer-Medienverbindungen, Datenkanäle und Schnittstellen repräsentieren, die beim Austausch von Informationen über die Fähigkeiten jedes Peers verwendet werden, um die bestmögliche Konfiguration für eine Zwei-Wege-Medienverbindung auszuwählen.
SchnittstellenRTCPeerConnection
Repräsentiert eine WebRTC-Verbindung zwischen dem lokalen Computer und einem entfernten Peer. Es wird verwendet, um eine effiziente Datenübertragung zwischen den beiden Peers zu handhaben.
RTCDataChannel
Repräsentiert einen bidirektionalen Datenkanal zwischen zwei Peers einer Verbindung.
RTCDataChannelEvent
Repräsentiert Ereignisse, die beim Anfügen eines RTCDataChannel
an eine RTCPeerConnection
auftreten. Das einzige Ereignis, das mit dieser Schnittstelle gesendet wird, ist datachannel
.
RTCSessionDescription
Repräsentiert die Parameter einer Sitzung. Jede RTCSessionDescription
besteht aus einem Beschreibungstyp, der anzeigt, welcher Teil des Angebots-/Antwortverhandlungsprozesses beschrieben wird, und dem SDP-Beschreibung der Sitzung.
RTCStatsReport
Bietet Informationen, die Statistiken für eine Verbindung oder für einen einzelnen Track auf der Verbindung detailliert beschreiben; der Bericht kann durch Aufrufen von RTCPeerConnection.getStats()
erhalten werden.
RTCIceCandidate
Repräsentiert einen Kandidaten für den Ausbau interaktiver Konnektivität (ICE) zur Erstellung einer RTCPeerConnection
.
RTCIceTransport
Repräsentiert Informationen über einen ICE-Transport.
RTCPeerConnectionIceEvent
Repräsentiert Ereignisse, die im Zusammenhang mit ICE-Kandidaten beim Ziel auftreten, normalerweise einer RTCPeerConnection
. Nur ein Ereignis ist von diesem Typ: icecandidate
.
RTCRtpSender
Verwaltet die Kodierung und Ãbertragung von Daten für einen MediaStreamTrack
auf einer RTCPeerConnection
.
RTCRtpReceiver
Verwaltet den Empfang und die Dekodierung von Daten für einen MediaStreamTrack
auf einer RTCPeerConnection
.
RTCTrackEvent
Die Schnittstelle wird verwendet, um ein track
-Ereignis darzustellen, das anzeigt, dass ein RTCRtpReceiver
-Objekt zu dem RTCPeerConnection
-Objekt hinzugefügt wurde, was darauf hinweist, dass ein neuer eingehender MediaStreamTrack
erstellt und der RTCPeerConnection
hinzugefügt wurde.
RTCSctpTransport
Bietet Informationen, die ein Stream Control Transmission Protocol (SCTP) Transport beschreiben und bietet auch eine Möglichkeit, auf den zugrunde liegenden Datagram Transport Layer Security (DTLS) Transport zuzugreifen, über den SCTP Pakete für alle Datenkanäle einer RTCPeerConnection
gesendet und empfangen werden.
bufferedamountlow
Die Menge an Daten, die derzeit vom Datenkanal gepuffert wirdâwie durch seine bufferedAmount
-Eigenschaft angegebenâhat sich auf das oder unter das minimale gepufferte Datenvolumen des Kanals verringert, wie von bufferedAmountLowThreshold
spezifiziert.
close
Der Datenkanal hat den SchlieÃprozess abgeschlossen und befindet sich jetzt im Zustand closed
. Sein zugrunde liegender Datentransport ist an diesem Punkt vollständig geschlossen. Sie können benachrichtigt werden bevor das SchlieÃen abgeschlossen ist, indem Sie auf das Ereignis closing
achten.
closing
Der RTCDataChannel
ist in den Zustand closing
übergegangen und zeigt an, dass er bald geschlossen wird. Sie können das AbschlieÃen des SchlieÃprozesses feststellen, indem Sie auf das Ereignis close
achten.
connectionstatechange
Der Verbindungszustand, der in connectionState
zugänglich ist, hat sich geändert.
datachannel
Ein neuer RTCDataChannel
ist verfügbar, nachdem der Remote-Peer einen neuen Datenkanal geöffnet hat. Der Ereignistyp ist RTCDataChannelEvent
.
error
Ein RTCErrorEvent
, der darauf hinweist, dass ein Fehler auf dem Datenkanal aufgetreten ist.
error
Ein RTCErrorEvent
, der darauf hinweist, dass ein Fehler auf dem RTCDtlsTransport
aufgetreten ist. Dieser Fehler wird entweder dtls-failure
oder fingerprint-failure
sein.
gatheringstatechange
Der Sammelstatus des RTCIceTransport
hat sich geändert.
icecandidate
Ein RTCPeerConnectionIceEvent
, das gesendet wird, wann immer das lokale Gerät einen neuen ICE-Kandidaten identifiziert hat, der dem lokalen Peer hinzugefügt werden muss, indem setLocalDescription()
aufgerufen wird.
icecandidateerror
Ein RTCPeerConnectionIceErrorEvent
, das darauf hinweist, dass beim Sammeln von ICE-Kandidaten ein Fehler aufgetreten ist.
iceconnectionstatechange
Wird an eine RTCPeerConnection
gesendet, wenn sich der ICE-Verbindungsstatusâgefunden in der Eigenschaft iceConnectionState
âändert.
icegatheringstatechange
Wird an eine RTCPeerConnection
gesendet, wenn sich der ICE-Sammelstatusâgefunden in der Eigenschaft iceGatheringState
âändert.
message
Eine Nachricht wurde auf dem Datenkanal empfangen. Das Ereignis ist vom Typ MessageEvent
.
negotiationneeded
Informiert die RTCPeerConnection
, dass eine Sitzungsverhandlung durchgeführt werden muss, indem createOffer()
gefolgt von setLocalDescription()
aufgerufen wird.
open
Der zugrunde liegende Datentransport für den RTCDataChannel
wurde erfolgreich geöffnet oder wieder geöffnet.
selectedcandidatepairchange
Das aktuell ausgewählte Paar von ICE-Kandidaten hat sich für das RTCIceTransport
geändert, auf dem das Ereignis ausgelöst wird.
track
Das track
-Ereignis, vom Typ RTCTrackEvent
, wird an eine RTCPeerConnection
gesendet, wenn ein neuer Track zur Verbindung hinzugefügt wird, nachdem die Verhandlung des Medienstreams erfolgreich war.
signalingstatechange
Wird an die Peer-Verbindung gesendet, wenn sich deren signalingState
geändert hat. Dies geschieht als Ergebnis eines Aufrufs von entweder setLocalDescription()
oder setRemoteDescription()
.
statechange
Der Status des RTCDtlsTransport
hat sich geändert.
statechange
Der Status des RTCIceTransport
hat sich geändert.
statechange
Der Status des RTCSctpTransport
hat sich geändert.
rtctransform
Ein codiertes Video- oder Audio-Frame ist bereit, um in einem Worker mit einem Transform-Stream verarbeitet zu werden.
RTCSctpTransport.state
Gibt den Zustand einer RTCSctpTransport
-Instanz an.
Diese APIs werden verwendet, um Benutzeridentität und Sicherheit zu verwalten, um den Benutzer für eine Verbindung zu authentifizieren.
RTCIdentityProvider
Ermöglicht es einem Benutzeragenten, zu verlangen, dass eine Identitätsaussage generiert oder validiert wird.
RTCIdentityAssertion
Repräsentiert die Identität des Remote-Peers der aktuellen Verbindung. Wenn noch kein Peer gesetzt und verifiziert wurde, gibt diese Schnittstelle null
zurück. Einmal gesetzt, kann es nicht geändert werden.
RTCIdentityProviderRegistrar
Registriert einen Identitätsanbieter (idP).
RTCCertificate
Repräsentiert ein Zertifikat, das eine RTCPeerConnection
zur Authentifizierung verwendet.
Diese Schnittstellen und Ereignisse stehen im Zusammenhang mit der Interaktion mit öffentlichen Telefonnetzen (PSTNs). Sie werden hauptsächlich verwendet, um Tonwahlsignaleâoder Pakete, die diese Töne repräsentierenâüber das Netzwerk an den Remote-Peer zu senden.
SchnittstellenRTCDTMFSender
Verwalten der Kodierung und Ãbertragung von Dual-Tone Multi-Frequency (DTMF) Signalisierung für eine RTCPeerConnection
.
RTCDTMFToneChangeEvent
Wird von dem tonechange
-Ereignis verwendet, um anzuzeigen, dass ein DTMF-Ton entweder begonnen oder beendet wurde. Dieses Ereignis bläst nicht auf (auÃer wo es anders angegeben ist) und ist nicht abbrechbar (auÃer wo es anders angegeben ist).
tonechange
Entweder ein neuer DTMF Ton hat begonnen, über die Verbindung zu spielen, oder der letzte Ton im toneBuffer
des RTCDTMFSender
wurde gesendet und der Puffer ist jetzt leer. Der Ereignistyp ist RTCDTMFToneChangeEvent
.
Diese Schnittstellen und Ereignisse werden verwendet, um eingehende und ausgehende codierte Video- und Audioframes mithilfe eines Transform-Streams zu verarbeiten, der in einem Worker ausgeführt wird.
SchnittstellenRTCRtpScriptTransform
Eine Schnittstelle zum Einsetzen von Transform-Streams, die in einem Worker in die RTC-Pipeline laufen.
RTCRtpScriptTransformer
Das Worker-seitige Gegenstück eines RTCRtpScriptTransform
, das Optionen aus dem Hauptthread zusammen mit einem lesbaren Strom und einem beschreibbaren Strom weitergibt, die verwendet werden können, um codierte Frames durch einen TransformStream
zu leiten.
RTCEncodedVideoFrame
Repräsentiert einen codierten Video-Frame, der in der RTC-Pipeline transformiert werden soll.
RTCEncodedAudioFrame
Repräsentiert einen codierten Audio-Frame, der in der RTC-Pipeline transformiert werden soll.
RTCRtpReceiver.transform
Eine Eigenschaft, die verwendet wird, um einen Transform-Stream in die Empfänger-Pipeline für eingehende codierte Video- und Audioframes einzufügen.
RTCRtpSender.transform
Eine Eigenschaft, die verwendet wird, um einen Transform-Stream in die Senderpipeline für ausgehende codierte Video- und Audioframes einzufügen.
rtctransform
Ein RTC Transform ist bereit, im Worker ausgeführt zu werden, oder ein codiertes Video- oder Audio-Frame ist bereit zur Verarbeitung.
Das Real-time Transport Protocol (RTP), definiert in RFC 3550, ist ein IETF-Standardprotokoll, um Echtzeit-Konnektivität für den Austausch von Daten zu ermöglichen, die Echtzeit-Priorität benötigen. Dieser Artikel bietet einen Ãberblick darüber, was RTP ist und wie es im Kontext von WebRTC funktioniert.
Dieser Artikel stellt die Protokolle vor, auf denen die WebRTC API aufgebaut ist.
Ein Leitfaden dafür, wie WebRTC-Verbindungen funktionieren und wie die verschiedenen Protokolle und Schnittstellen zusammen verwendet werden können, um leistungsstarke Kommunikations-Apps zu entwickeln.
Mit WebRTC können Sie die Peer-to-Peer-Kommunikation beliebiger Daten, Audio oder Videoâoder jeder Kombination davonâin eine Browseranwendung integrieren. In diesem Artikel betrachten wir die Lebensdauer einer WebRTC-Sitzung, von der Herstellung der Verbindung bis hin zum SchlieÃen der Verbindung, wenn sie nicht mehr benötigt wird.
Perfekte Verhandlung ist ein Entwurfsmuster, das für Ihren Signalisierungsprozess empfohlen wird, das Transparenz in der Verhandlung bietet, während es beiden Seiten ermöglicht, entweder der Anbieter oder der Antwortende zu sein, ohne dass wesentliche Codierungen erforderlich sind, um zwischen den beiden zu unterscheiden.
Ein Tutorial und Beispiel, das ein WebSocket-basiertes Chatsystem aus einem früheren Beispiel aufgreift und Unterstützung für das Ãffnen von Videoanrufen zwischen Teilnehmern hinzufügt. Die WebSocket-Verbindung des Chat-Servers wird für die WebRTC-Signalisierung verwendet.
Ein Leitfaden zu den Codecs, die WebRTC erfordert, dass Browser sie unterstützen, sowie die optionalen, die von verschiedenen beliebten Browsern unterstützt werden. Enthalten ist ein Leitfaden, der Ihnen hilft, die besten Codecs für Ihre Bedürfnisse auszuwählen.
Dieser Leitfaden behandelt, wie Sie eine Peer-Verbindung und einen zugehörigen RTCDataChannel
verwenden können, um beliebige Daten zwischen zwei Peers auszutauschen.
WebRTCs Unterstützung für die Interaktion mit Gateways, die mit herkömmlichen Telefonsystemen verknüpft sind, umfasst die Unterstützung zum Senden von DTMF-Tönen über die Schnittstelle RTCDTMFSender
. Dieser Leitfaden zeigt, wie man dies tut.
Dieser Leitfaden zeigt, wie eine Webanwendung eingehende und ausgehende WebRTC-codierte Video- und Audioframes ändern kann, indem ein TransformStream
verwendet wird, der in einem Worker läuft.
Die WebRTC-Organisation bietet auf GitHub den WebRTC-Adapter, um Kompatibilitätsprobleme in den WebRTC-Implementierungen verschiedener Browser zu umgehen. Der Adapter ist ein JavaScript-Shim, der es Ihrem Code ermöglicht, gemäà der Spezifikation geschrieben zu werden, sodass er in allen WebRTC-unterstützten Browsern einfach funktioniert.
Die Schnittstelle RTCDataChannel
ist eine Funktion, die es ermöglicht, einen Kanal zwischen zwei Peers zu öffnen, über den beliebige Daten gesendet und empfangen werden können. Die API ist absichtlich ähnlich wie die WebSocket-API, sodass dasselbe Programmiermodell für beide verwendet werden kann.
Dieses Tutorial ist eine Schritt-für-Schritt-Anleitung zum Bau eines Telefons mit Peer.js
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4