ExtendableMessageEvent

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2018.

Hinweis: Dieses Feature ist nur verfügbar in Service Workers.

Das ExtendableMessageEvent Interface der Service Worker API repräsentiert das Ereignisobjekt eines message Ereignisses, das auf einem Service Worker ausgelöst wird (wenn eine Nachricht auf dem ServiceWorkerGlobalScope aus einem anderen Kontext empfangen wird) – es verlängert die Lebensdauer solcher Ereignisse.

Dieses Interface erbt vom ExtendableEvent Interface.

Event ExtendableEvent ExtendableMessageEvent

Konstruktor

ExtendableMessageEvent()

Erstellt eine neue ExtendableMessageEvent Objektinstanz.

Instanzeigenschaften

Erbt Eigenschaften von seinem Elternteil, ExtendableEvent.

ExtendableMessageEvent.data Nur lesbar

Gibt die Daten des Ereignisses zurück. Es kann sich um jeden Datentyp handeln. Wenn im messageerror Ereignis ausgelöst, wird die Eigenschaft null sein.

ExtendableMessageEvent.origin Nur lesbar

Gibt den Ursprung des Client zurück, der die Nachricht gesendet hat.

ExtendableMessageEvent.lastEventId Nur lesbar

Repräsentiert bei server-sent events die letzte Ereignis-ID der Ereignisquelle.

ExtendableMessageEvent.source Nur lesbar

Gibt eine Referenz des Client Objekts zurück, das die Nachricht gesendet hat.

ExtendableMessageEvent.ports Nur lesbar

Gibt das Array zurück, das die MessagePort Objekte repräsentiert, die die Ports des zugehörigen Nachrichtenkanals darstellen.

Instanzmethoden

Erbt Methoden von seinem Elternteil, ExtendableEvent.

Beispiele

Im untenstehenden Beispiel erhält eine Seite eine Referenz auf das ServiceWorker Objekt über ServiceWorkerRegistration.active und ruft dann seine postMessage() Funktion auf.

js
// in the page being controlled
if (navigator.serviceWorker) {
  navigator.serviceWorker.register("service-worker.js");

  navigator.serviceWorker.addEventListener("message", (event) => {
    // event is a MessageEvent object
    console.log(`The service worker sent me a message: ${event.data}`);
  });

  navigator.serviceWorker.ready.then((registration) => {
    registration.active.postMessage("Hi service worker");
  });
}

Der Service Worker kann die Nachricht empfangen, indem er auf das message Ereignis hört:

js
// in the service worker
addEventListener("message", (event) => {
  // event is an ExtendableMessageEvent object
  console.log(`The client sent me a message: ${event.data}`);

  event.source.postMessage("Hi client");
});

Spezifikationen

Specification
Service Workers
# extendablemessageevent-interface

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch