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.
* Some parts of this feature may have varying levels of support.
Das RTCDataChannel
-Interface repräsentiert einen Netzwerkkanal, der für bidirektionale Peer-to-Peer-Übertragungen beliebiger Daten verwendet werden kann. Jeder Datenkanal ist mit einer RTCPeerConnection
verbunden, und jede Peer-Verbindung kann theoretisch maximal 65.534 Datenkanäle haben (das tatsächliche Limit kann je nach Browser variieren).
Um einen Datenkanal zu erstellen und einen Remote-Peer einzuladen, ihm beizutreten, rufen Sie die Methode createDataChannel()
der RTCPeerConnection
auf. Der Peer, der eingeladen wird, Daten auszutauschen, empfängt ein datachannel
-Ereignis (vom Typ RTCDataChannelEvent
), das informiert, 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 Objekttyp angibt, der verwendet werden soll, um binäre Daten zu repräsentieren, die auf dem
RTCDataChannel
empfangen werden. Die Werte sind die gleichen wie bei derWebSocket.binaryType
-Eigenschaft zulässig:blob
, wennBlob
-Objekte verwendet werden, oderarraybuffer
, wennArrayBuffer
-Objekte verwendet werden. Der Standardwert istarraybuffer
. bufferedAmount
Schreibgeschützt-
Gibt die Anzahl der Bytes von Daten zurück, die derzeit zur Übertragung über den Datenkanal in der Warteschlange stehen.
bufferedAmountLowThreshold
-
Gibt die Anzahl der Bytes des gepufferten ausgehenden Daten an, die als "niedrig" angesehen wird. Der Standardwert ist 0.
id
Schreibgeschützt-
Gibt eine ID-Nummer (zwischen 0 und 65.534) zurück, die das
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 Zeitspanne in Millisekunden zurück, die der Browser hat, um zu versuchen, eine Nachricht zu übertragen, wie beim Erstellen des Datenkanals festgelegt, oder
null
. maxRetransmits
Schreibgeschützt-
Gibt die maximale Anzahl von Übertragungsversuchen zurück, die der Browser unternehmen sollte, bevor er aufgibt, wie beim Erstellen des Datenkanals festgelegt, oder
null
, was darauf hinweist, dass es kein Maximum gibt. negotiated
Schreibgeschützt-
Gibt an, ob die Verbindung des
RTCDataChannel
von der Webanwendung (true
) oder der WebRTC-Schicht (false
) ausgehandelt wurde. Der Standard istfalse
. ordered
Schreibgeschützt-
Gibt an, ob der Datenkanal die Zustellreihenfolge von Nachrichten gewährleistet; der Standardwert ist
true
, was darauf hinweist, dass der Datenkanal in der Tat geordnet ist. protocol
Schreibgeschützt-
Gibt einen String zurück, der den Namen des verwendeten Subprotokolls enthält. Wenn beim Erstellen des Datenkanals kein Protokoll 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.
Instanz-Methoden
Erbt auch Methoden von EventTarget
.
Ereignisse
bufferedamountlow
-
Wird gesendet, wenn die Anzahl der Bytes von Daten im ausgehenden Datenpuffer unter den durch
bufferedAmountLowThreshold
festgelegten Wert fällt. close
-
Wird gesendet, wenn der zugrunde liegende Datentransport geschlossen wird.
closing
-
Wird gesendet, wenn der zugrunde liegende Datentransport zu schließen beginnt.
error
-
Wird gesendet, wenn ein Fehler auf dem Datenkanal auftritt.
message
-
Wird gesendet, wenn eine Nachricht vom Remote-Peer empfangen wurde. Der Nachrichteninhalt kann in der
data
-Eigenschaft des Ereignisses gefunden werden. open
-
Wird gesendet, wenn der Datenkanal zuerst geöffnet wird oder wenn die zugrunde liegende Verbindung eines bestehenden Datenkanals erneut geöffnet wird.
Datenformat
Das zugrunde liegende Datenformat ist in der 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 überträgt DTLS überträgt SCTP) oder "TCP/DTLS/SCTP"
(TCP überträgt DTLS überträgt SCTP). Ältere Browser können nur "DTLS/SCTP"
angeben.
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 |