RTCDataChannel
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
Die Schnittstelle RTCDataChannel
repräsentiert einen Netzwerkkanal, der für bidirektionale Peer-to-Peer-Übertragungen von beliebigen Daten verwendet werden kann. Jeder Datenkanal ist mit einer RTCPeerConnection
verknüpft, und jede Peer-Verbindung kann bis zu einem theoretischen Maximum von 65.534 Datenkanälen besitzen (die tatsächliche Grenze kann von Browser zu Browser variieren).
Um einen Datenkanal zu erstellen und einen Remote-Peer einzuladen, treten Sie mit der RTCPeerConnection
-Methode createDataChannel()
in Kontakt. Der Peer, der eingeladen wird, Daten auszutauschen, erhält ein datachannel
-Ereignis (vom Typ RTCDataChannelEvent
), um darüber informiert zu werden, dass der Datenkanal zur Verbindung hinzugefügt wurde.
RTCDataChannel
ist ein übertragbares Objekt.
Instanz-Eigenschaften
Erbt auch Eigenschaften von EventTarget
.
binaryType
-
Ein String, der den Typ des Objekts angibt, das verwendet werden soll, um empfangene Binärdaten auf dem
RTCDataChannel
zu repräsentieren. Die Werte sind die gleichen wie auf derWebSocket.binaryType
-Eigenschaft erlaubt:blob
, wennBlob
-Objekte verwendet werden, oderarraybuffer
, wennArrayBuffer
-Objekte verwendet werden. Der Standardwert istblob
. bufferedAmount
Schreibgeschützt-
Gibt die Anzahl der Bytes an Daten zurück, die derzeit in der Warteschlange stehen, um über den Datenkanal gesendet zu werden.
bufferedAmountLowThreshold
-
Legt die Anzahl der Bytes fest, die als "wenig" gepuffert eingehende Daten gelten. Der Standardwert ist 0.
id
Schreibgeschützt-
Gibt eine ID-Nummer (zwischen 0 und 65.534) zurück, die den
RTCDataChannel
eindeutig identifiziert. label
Schreibgeschützt-
Gibt einen String zurück, der einen Namen enthält, der den Datenkanal beschreibt. Diese Bezeichnungen müssen nicht eindeutig sein.
maxPacketLifeTime
Schreibgeschützt-
Gibt die Anzahl der Millisekunden zurück, die der Browser Zeit hat, um zu versuchen, eine Nachricht zu übertragen, so wie es beim Erstellen des Datenkanals festgelegt wurde, oder
null
. maxRetransmits
Schreibgeschützt-
Gibt die maximale Anzahl der Versuche zurück, die der Browser unternehmen soll, um eine Nachricht erneut zu senden, bevor er aufgibt, wie es beim Erstellen des Datenkanals festgelegt wurde, oder
null
, was anzeigt, dass es kein Maximum gibt. negotiated
Schreibgeschützt-
Gibt an, ob die Verbindung des
RTCDataChannel
von der Web-App (true
) oder von der WebRTC-Schicht (false
) ausgehandelt wurde. Der Standardwert istfalse
. ordered
Schreibgeschützt-
Gibt an, ob der Datenkanal die geordnete Lieferung von Nachrichten garantiert; der Standardwert ist
true
, was darauf hinweist, dass der Datenkanal tatsächlich geordnet ist. protocol
Schreibgeschützt-
Gibt einen String zurück, der den Namen des verwendeten Unterprotokolls enthält. Wenn kein Protokoll beim Erstellen des Datenkanals angegeben wurde, ist der Wert dieser Eigenschaft der leere String (
""
). readyState
Schreibgeschützt-
Gibt einen String zurück, der den Zustand der zugrunde liegenden Datenverbindung des Datenkanals anzeigt. Es kann einen der folgenden Werte haben:
connecting
,open
,closing
oderclosed
.
Veraltete Eigenschaften
reliable
Schreibgeschützt Veraltet Nicht standardisiert-
Gibt an, ob der Datenkanal zuverlässig ist oder nicht.
Instanz-Methoden
Erbt auch Methoden von EventTarget
.
Ereignisse
bufferedamountlow
-
Wird gesendet, wenn die Anzahl der Bytes an Daten im ausgehenden Datenpuffer unter den durch
bufferedAmountLowThreshold
angegebenen Wert fällt. close
-
Wird gesendet, wenn der zugrunde liegende Datenverkehr geschlossen wird.
closing
-
Wird gesendet, wenn der zugrunde liegende Datenverkehr dabei ist, sich zu schließen.
error
-
Wird gesendet, wenn ein Fehler auf dem Datenkanal auftritt.
message
-
Wird gesendet, wenn eine Nachricht vom Remote-Peer empfangen wurde. Der Inhalt der Nachricht kann in der
data
-Eigenschaft des Ereignisses gefunden werden. open
-
Wird gesendet, wenn der Datenkanal erstmals geöffnet wird oder wenn die bestehende zugrunde liegende Verbindung eines Datenkanals erneut geöffnet wird.
Datenformat
Das zugrunde liegende Datenformat wird durch die IEEE-Spezifikation SDP Offer/Answer Procedures for SCTP over DTLS Transport (RFC 8841) definiert. Das aktuelle Format spezifiziert sein Protokoll entweder als "UDP/DTLS/SCTP"
(UDP mit DTLS und SCTP) oder "TCP/DTLS/SCTP"
(TCP mit DTLS und SCTP). Ältere Browser könnten nur "DTLS/SCTP"
spezifizieren.
Beispiel
const pc = new RTCPeerConnection();
const dc = pc.createDataChannel("my channel");
dc.onmessage = (event) => {
console.log(`received: ${event.data}`);
};
dc.onopen = () => {
console.log("datachannel open");
};
dc.onclose = () => {
console.log("datachannel close");
};
Spezifikationen
Specification |
---|
WebRTC: Real-Time Communication in Browsers # rtcdatachannel |
Browser-Kompatibilität
BCD tables only load in the browser