SharedWorkerGlobalScope: connect-Ereignis

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

Dieses Ereignis kann nicht abgebrochen werden und wird nicht weitergeleitet.

Syntax

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

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

onconnect = (event) => {};

Ereignistyp

Ereigniseigenschaften

Diese Schnittstelle erbt auch Eigenschaften von ihrem Elternteil, Event.

MessageEvent.data Schreibgeschützt

Die vom Nachrichtensender gesendeten Daten.

MessageEvent.origin Schreibgeschützt

Ein String, der den Ursprung des Nachrichtensenders 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 Nachrichtensender repräsentiert.

MessageEvent.ports Schreibgeschützt

Ein Array von MessagePort-Objekten, die die mit dem Kanal assoziierten Ports darstellen, über die die Nachricht gesendet wird (wo zutreffend, z. B. bei der Kanalnachrichtenübermittlung oder beim Senden einer Nachricht an einen Shared Worker).

Beispiele

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

Der verbindende Port kann über den ports-Parameter des Ereignisobjekts referenziert werden; auf diese Referenz kann ein onmessage-Handler angewendet werden, um eingehende Nachrichten über den Port zu verarbeiten, und die Methode postMessage() kann verwendet werden, um Nachrichten über den Worker zurück an den Hauptthread 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 mit der Methode addEventListener() einrichten:

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

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
connect event

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
See implementation notes.
Has more compatibility info.

Siehe auch