Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

RTCPeerConnection: datachannel Ereignis

Baseline Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Januar 2020 browserübergreifend verfügbar.

Ein datachannel Ereignis wird an eine RTCPeerConnection-Instanz gesendet, wenn ein RTCDataChannel zur Verbindung hinzugefügt wurde, weil der entfernte Peer RTCPeerConnection.createDataChannel() aufgerufen hat.

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

Dieses Ereignis kann nicht abgebrochen werden und es 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

Ein RTCDataChannelEvent. Erbt von Event.

Event RTCDataChannelEvent

Beispiele

Dieses Beispiel richtet eine Funktion ein, die datachannel Ereignisse verarbeitet, indem sie die Informationen sammelt, die zur Kommunikation mit dem neu hinzugefügten RTCDataChannel erforderlich sind, und Ereignisbehandler für die Ereignisse hinzufügt, die auf diesem Kanal auftreten.

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

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 Ereignisbehandlungs-Eigenschaft der RTCPeerConnection Schnittstelle verwenden, so:

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

Spezifikationen

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

Browser-Kompatibilität

Siehe auch