Spec-Zone.ru › Web APIs

SharedWorkerGlobalScope: событие connect

Событие connect срабатывает в общих рабочих потоках (SharedWorkerGlobalScope) при подключении нового клиента.

Это событие не отменяется и не распространяется.

Синтаксис

Используйте имя события в методах, таких как addEventListener(), или задайте свойство обработчика события.

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

onconnect = (event) => {};

Тип события

Объект MessageEvent. Наследуется от Event.

Событие MessageEvent

Свойства события

Этот интерфейс также наследует свойства от своего родительского класса Event.

MessageEvent.data Только для чтения

Данные, отправленные отправителем сообщения.

MessageEvent.origin Только для чтения

Строка, представляющая источник отправителя сообщения.

MessageEvent.lastEventId Только для чтения

Строка, представляющая уникальный идентификатор события.

MessageEvent.source Только для чтения

Объект MessageEventSource (который может быть WindowProxy, MessagePort или ServiceWorker объект), представляющий отправителя сообщения.

MessageEvent.ports Только для чтения

Массив объектов MessagePort, представляющих порты, связанные с каналом, через который отправляется сообщение (где это уместно, например, при сообщении через канал или при отправке сообщения в общий рабочий поток).

Примеры

В этом примере показан файл общего рабочего потока — когда соединение с рабочим потоком происходит из потока основного потока через MessagePort, срабатывает обработчик события onconnect. Объект события является MessageEvent.

Подключающийся порт можно получить через параметр ports объекта события; к этой ссылке можно прикрепить обработчик onmessage для обработки поступающих сообщений через порт, а метод postMessage() можно использовать для отправки сообщений обратно в основной поток с помощью рабочего потока.

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();
};

Для полного примера обратитесь к нашему примеру базового общего рабочего потока (запустить общий рабочий поток.)

Эквивалент addEventListener

Вы также можете настроить обработчик событий, используя метод addEventListener():

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

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

Спецификации

Спецификация
HTML
# event-workerglobalscope-connect
HTML
# handler-sharedworkerglobalscope-onconnect

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
connect_event 4 79
29До версии 65 свойство data объекта события было null; теперь оно инициализируется пустой строкой, как и в спецификации.
10.6 165–7 Нет
29До версии 65 свойство data объекта события было null; теперь оно инициализируется пустой строкой, как и в спецификации.
11 165–7 Нет ≤37

См. также

  • Использование веб-рабочих потоков
  • SharedWorkerGlobalScope

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/SharedWorkerGlobalScope/connect_event

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API