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 der Verbindung ein RTCDataChannel hinzugefügt wurde, weil der entfernte Peer RTCPeerConnection.createDataChannel() aufgerufen hat.
Hinweis: Dieses Ereignis wird nicht ausgelöst, wenn die lokale Seite der Verbindung den Kanal erstellt.
Dieses Ereignis kann nicht abgebrochen werden und breitet sich nicht im DOM-Baum aus.
Syntax
Verwenden Sie den Ereignisnamen in addEventListener():
addEventListener("datachannel", (event) => { })
Alternativ können Sie die Event-Handler-Eigenschaft der Schnittstelle verwenden:
ondatachannel = (event) => { }
Ereignistyp
Ein RTCDataChannelEvent. Erbt von Event.
Beispiele
Dieses Beispiel richtet eine Funktion ein, die datachannel-Ereignisse verarbeitet. Sie erfasst die Informationen, die für die Kommunikation über den neu hinzugefügten RTCDataChannel benötigt werden, und fügt Event-Handler für die auf diesem Kanal auftretenden Ereignisse hinzu.
pc.addEventListener("datachannel", (ev) => {
receiveChannel = ev.channel;
receiveChannel.onmessage = myHandleMessage;
receiveChannel.onopen = myHandleOpen;
receiveChannel.onclose = myHandleClose;
});
receiveChannel wird auf den Wert der Ereigniseigenschaft channel gesetzt. Diese gibt das RTCDataChannel-Objekt an, das den Datenkanal zwischen dem entfernten und dem lokalen Peer repräsentiert.
Stattdessen kann derselbe Code auch die Event-Handler-Eigenschaft ondatachannel der RTCPeerConnection-Schnittstelle verwenden, wie hier gezeigt. Beachten Sie jedoch, dass dadurch gegebenenfalls andere mit ondatachannel hinzugefügte Event-Listener ersetzt werden:
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> |