RTCDataChannel: message-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.
Das WebRTC message-Ereignis wird an den onmessage-Ereignis-Handler eines RTCDataChannel-Objekts gesendet, wenn eine Nachricht vom entfernten Peer empfangen wurde.
Hinweis:
Das message-Ereignis verwendet als Event-Objekttyp das MessageEvent-Interface, das durch die HTML-Spezifikation definiert ist.
Dieses Ereignis kann nicht abgebrochen werden und wird nicht gebubbelt.
Syntax
Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Ereignis-Handler-Eigenschaft.
addEventListener("message", (event) => { })
onmessage = (event) => { }
Ereignistyp
Ein MessageEvent. Erbt von Event.
Beispiele
Für ein gegebenes RTCDataChannel, dc, das für eine Peer-Verbindung unter Verwendung der Methode createDataChannel() erstellt wurde, setzt dieser Code einen Handler für eingehende Nachrichten auf und verarbeitet diese, indem die im Ereignis enthaltenen Daten als neues <p>-Element (Absatz) in das aktuelle Dokument eingefügt werden.
dc.addEventListener("message", (event) => {
let newParagraph = document.createElement("p");
let textNode = document.createTextNode(event.data);
newParagraph.appendChild(textNode);
document.body.appendChild(newParagraph);
});
Wir erstellen zunächst das neue Absatz-Element und fügen die Nachrichtendaten als neuen Textknoten hinzu. Dann fügen wir den neuen Absatz an das Ende des Dokumentkörpers an.
Sie können auch die onmessage-Ereignis-Handler-Eigenschaft eines RTCDataChannel-Objekts verwenden, um den Ereignis-Handler festzulegen:
dc.onmessage = (event) => {
let newParagraph = document.createElement("p");
let textNode = document.createTextNode(event.data);
newParagraph.appendChild(textNode);
document.body.appendChild(newParagraph);
};
Spezifikationen
| Spezifikation |
|---|
| WebRTC: Real-Time Communication in Browsers> # event-datachannel-message> |
| WebRTC: Real-Time Communication in Browsers> # dom-rtcdatachannel-onmessage> |
Browser-Kompatibilität
Siehe auch
- WebRTC API
- Ein einfaches RTCDataChannel-Beispiel
- Verwandte Ereignisse:
open,closeunderror RTCDataChannel.send()