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.
addEventListener("connect", (event) => {});
onconnect = (event) => {};
Ereignistyp
Ein MessageEvent
. Erbt von Event
.
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, einMessagePort
oder einServiceWorker
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.
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:
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 |