RTCDataChannel: message Ereignis
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
Das WebRTC message
-Ereignis wird dem onmessage
Ereignishandler auf einem RTCDataChannel
-Objekt gesendet, wenn eine Nachricht vom entfernten Peer empfangen wurde.
Hinweis:
Das message
-Ereignis verwendet als seinen Ereignisobjekttyp die MessageEvent
-Schnittstelle, die durch die HTML-Spezifikation definiert ist.
Dieses Ereignis kann nicht abgebrochen werden und wird nicht propagiert.
Syntax
Verwenden Sie den Ereignisnamen in Methoden wie addEventListener()
oder setzen Sie eine Ereignishandler-Eigenschaft.
addEventListener("message", (event) => {});
onmessage = (event) => {};
Ereignistyp
Ein MessageEvent
. Erbt von Event
.
Ereigniseigenschaften
Erbt auch Eigenschaften von seiner Elternschnittstelle, Event
.
MessageEvent.data
Schreibgeschützt-
Die von dem Nachrichtenemitter gesendeten Daten.
MessageEvent.origin
Schreibgeschützt-
Ein String, der den Ursprung des Nachrichtenemitters repräsentiert.
MessageEvent.lastEventId
Schreibgeschützt-
Ein String, der eine eindeutige ID für das Ereignis darstellt.
MessageEvent.source
Schreibgeschützt-
Eine Referenz zum Nachrichtenemitter, einer von WindowProxy,
MessagePort
oderServiceWorker
. MessageEvent.ports
Schreibgeschützt-
Ein Array von
MessagePort
-Objekten, die die Ports repräsentieren, die mit dem Kanal assoziiert sind, durch den die Nachricht gesendet wird (wo zutreffend, z.B. bei Kanalmeldungen oder wenn eine Nachricht an einen geteilten Worker gesendet wird).
Beispiele
Für einen gegebenen RTCDataChannel
, dc
, der für eine Peer-Verbindung mit seiner createDataChannel()
-Methode erstellt wurde, richtet dieser Code einen Handler für eingehende Nachrichten ein und reagiert darauf, indem die im Nachricht enthaltenden Daten dem aktuellen Dokument als neues <p>
-Element (Absatz) hinzugefügt werden.
dc.addEventListener(
"message",
(event) => {
let newParagraph = document.createElement("p");
let textNode = document.createTextNode(event.data);
newParagraph.appendChild(textNode);
document.body.appendChild(newParagraph);
},
false,
);
Wir erstellen zuerst das neue Absatz-Element und fügen die Nachrichtendaten als neuen Textknoten hinzu. Dann hängen wir den neuen Absatz am Ende des Körperteils des Dokuments an.
Sie können auch die onmessage
-Ereignishandlereigenschaft eines RTCDataChannel
-Objekts verwenden, um den Ereignishandler einzustellen:
dc.onmessage = (event) => {
let newParagraph = document.createElement("p");
let textNode = document.createTextNode(event.data);
newParagraph.appendChild(textNode);
document.body.appendChild(newParagraph);
};
Spezifikationen
Specification |
---|
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
,close
, underror
RTCDataChannel.send()