RTCPeerConnection: datachannel-Ereignis
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.
addEventListener("datachannel", (event) => {});
ondatachannel = (event) => {};
Ereignistyp
Ein RTCDataChannelEvent
. Erbt von Event
.
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.
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:
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