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-Ereignis message wird an den onmessage-Ereignishandler eines RTCDataChannel-Objekts gesendet, wenn eine Nachricht vom entfernten Peer empfangen wurde.
Hinweis:
Das message-Ereignis verwendet als Ereignisobjekttyp die in der HTML-Spezifikation definierte Schnittstelle MessageEvent.
Dieses Ereignis kann nicht abgebrochen werden und breitet sich nicht nach oben aus.
Syntax
Verwenden Sie den Ereignisnamen in addEventListener():
addEventListener("message", (event) => { })
Alternativ können Sie den Handler der Ereignishandler-Eigenschaft der Schnittstelle zuweisen:
onmessage = (event) => { }
Ereignistyp
Ein MessageEvent. Erbt von Event.
Beispiele
Für einen gegebenen RTCDataChannel, dc, der für eine Peer-Verbindung mit deren Methode createDataChannel() erstellt wurde, richtet dieser Code einen Handler für eingehende Nachrichten ein. Er verarbeitet sie, indem er die in der Nachricht enthaltenen Daten als neues <p>-Element (Absatz) zum aktuellen Dokument hinzufügt.
dc.addEventListener("message", (event) => {
let newParagraph = document.createElement("p");
let textNode = document.createTextNode(event.data);
newParagraph.appendChild(textNode);
document.body.appendChild(newParagraph);
});
Zuerst erstellen wir das neue Absatzelement und fügen ihm die Nachrichtendaten als neuen Textknoten hinzu. Anschließend hängen wir den neuen Absatz an das Ende des Dokument-Bodys an.
Sie können den Ereignishandler auch über die onmessage-Ereignishandler-Eigenschaft eines RTCDataChannel-Objekts festlegen. Beachten Sie jedoch, dass dadurch gegebenenfalls andere über onmessage hinzugefügte Ereignis-Listener ersetzt werden:
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()