SharedWorkerGlobalScope: событие connect
Событие connect срабатывает в общих рабочих потоках (SharedWorkerGlobalScope) при подключении нового клиента.
Это событие не отменяется и не распространяется.
Синтаксис
Используйте имя события в методах, таких как addEventListener(), или задайте свойство обработчика события.
addEventListener("connect", (event) => {});
onconnect = (event) => {};
Тип события
Объект MessageEvent. Наследуется от Event.
Свойства события
Этот интерфейс также наследует свойства от своего родительского класса 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 |
См. также
© 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