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.

js
addEventListener("message", (event) => {});

onmessage = (event) => {};

Ereignistyp

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 oder ServiceWorker.

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.

js
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:

js
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