RTCPeerConnection: datachannel-Ereignis

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.

Ein datachannel-Ereignis wird an eine RTCPeerConnection-Instanz gesendet, wenn ein RTCDataChannel zur Verbindung hinzugefügt wurde, als Ergebnis des Aufrufs von RTCPeerConnection.createDataChannel() durch den entfernten Peer.

Hinweis: Dieses Ereignis wird nicht ausgelöst, wenn das lokale Ende der Verbindung den Kanal erstellt.

Dieses Ereignis ist nicht abbrechbar und wird nicht gebubbelt.

Syntax

Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Ereignisbehandlungs-Eigenschaft.

js
addEventListener("datachannel", (event) => {});

ondatachannel = (event) => {};

Ereignistyp

Ereigniseigenschaften

Erbt auch Eigenschaften von Event.

channel Nur lesbar

Gibt den RTCDataChannel zurück, der mit dem Ereignis verknüpft ist.

Beispiele

Dieses Beispiel richtet eine Funktion ein, die datachannel-Ereignisse verarbeitet, indem sie die benötigten Informationen sammelt, um mit dem neu hinzugefügten RTCDataChannel zu kommunizieren, und fügt Ereignisbehandler für die Ereignisse hinzu, die auf diesem Kanal auftreten.

js
pc.addEventListener(
  "datachannel",
  (ev) => {
    receiveChannel = ev.channel;
    receiveChannel.onmessage = myHandleMessage;
    receiveChannel.onopen = myHandleOpen;
    receiveChannel.onclose = myHandleClose;
  },
  false,
);

receiveChannel wird auf den Wert der channel-Eigenschaft des Ereignisses gesetzt, die das RTCDataChannel-Objekt spezifiziert, das den Datenkanal darstellt, der den entfernten Peer mit dem lokalen verbindet.

Dieser gleiche Code kann auch stattdessen die ondatachannel-Ereignisbehandlungseigenschaft der RTCPeerConnection-Schnittstelle verwenden, wie folgt:

js
pc.ondatachannel = (ev) => {
  receiveChannel = ev.channel;
  receiveChannel.onmessage = myHandleMessage;
  receiveChannel.onopen = myHandleOpen;
  receiveChannel.onclose = myHandleClose;
};

Spezifikationen

Specification
WebRTC: Real-Time Communication in Browsers
# dom-rtcpeerconnection-ondatachannel

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch