RTCDataChannel
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Januar 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
RTCDataChannelempfangen 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. bufferedAmountSchreibgeschü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.
idSchreibgeschützt-
Gibt eine ID-Nummer (zwischen 0 und 65.534) zurück, die das
RTCDataChanneleindeutig identifiziert. labelSchreibgeschützt-
Gibt einen String zurück, der einen Namen enthält, der den Datenkanal beschreibt. Diese Bezeichnungen müssen nicht eindeutig sein.
maxPacketLifeTimeSchreibgeschü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. maxRetransmitsSchreibgeschü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. negotiatedSchreibgeschützt-
Gibt an, ob die Verbindung des
RTCDataChannelvon der Webanwendung (true) oder der WebRTC-Schicht (false) ausgehandelt wurde. Der Standard istfalse. orderedSchreibgeschü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. protocolSchreibgeschü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 (
""). readyStateSchreibgeschü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,closingoderclosed.
Veraltete Eigenschaften
reliableSchreibgeschü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
bufferedAmountLowThresholdfestgelegten 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> |
Browser-Kompatibilität
Loading…