SharedWorkerGlobalScope: connect Ereignis

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Das connect Ereignis wird in Shared Workers in ihrem SharedWorkerGlobalScope ausgelöst, wenn ein neuer Client eine Verbindung herstellt.

Dieses Ereignis ist nicht abbruchbar und wird nicht weitergegeben.

Syntax

Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Ereignishandler-Eigenschaft.

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

onconnect = (event) => {};

Ereignistyp

Ereigniseigenschaften

Diese Schnittstelle erbt auch Eigenschaften von ihrem Elternteil, Event.

MessageEvent.data Schreibgeschützt

Die von dem Nachrichtenemitter gesendeten Daten.

MessageEvent.origin Schreibgeschützt

Ein String, der den Ursprung des Nachrichtenemitters darstellt.

MessageEvent.lastEventId Schreibgeschützt

Ein String, der eine eindeutige ID für das Ereignis darstellt.

MessageEvent.source Schreibgeschützt

Eine MessageEventSource (die ein WindowProxy, ein MessagePort oder ein ServiceWorker Objekt sein kann), die den Nachrichtenemitter darstellt.

MessageEvent.ports Schreibgeschützt

Ein Array von MessagePort Objekten, die die mit dem Kanal assoziierten Ports repräsentieren, durch den die Nachricht gesendet wird (wo zutreffend, z.B. in der Kanalnachrichtübermittlung oder beim Senden einer Nachricht an einen Shared Worker).

Beispiele

Dieses Beispiel zeigt eine Shared Worker-Datei – wenn über einen Hauptthread über einen MessagePort eine Verbindung zum Worker hergestellt wird, wird der onconnect Ereignishandler ausgelöst. Das Ereignisobjekt ist ein MessageEvent.

Der verbindende Port kann über den ports Parameter des Ereignisobjekts referenziert werden; dieser Verweis kann einen onmessage Handler daran angehängt haben, um Nachrichten zu verarbeiten, die durch den Port hereinkommen, und seine postMessage() Methode kann verwendet werden, um Nachrichten zurück an den Hauptthread über den Worker zu senden.

js
self.onconnect = (e) => {
  const port = e.ports[0];

  port.onmessage = (e) => {
    const workerResult = `Result: ${e.data[0] * e.data[1]}`;
    port.postMessage(workerResult);
  };

  port.start();
};

Für ein vollständiges laufendes Beispiel sehen Sie unser Einfaches Shared Worker-Beispiel (Shared Worker ausführen.)

addEventListener Äquivalent

Sie könnten auch einen Ereignishandler einrichten, indem Sie die addEventListener() Methode verwenden:

js
self.addEventListener("connect", (e) => {
  const port = e.ports[0];

  port.onmessage = (e) => {
    const workerResult = `Result: ${e.data[0] * e.data[1]}`;
    port.postMessage(workerResult);
  };
});

Spezifikationen

Specification
HTML
# event-workerglobalscope-connect
HTML
# handler-sharedworkerglobalscope-onconnect

Browser-Kompatibilität

Siehe auch