Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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():

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

Alternativ können Sie den Handler der Ereignishandler-Eigenschaft der Schnittstelle zuweisen:

js
onmessage = (event) => { }

Ereignistyp

Ein MessageEvent. Erbt von Event.

Event MessageEvent

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.

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

js
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