ExtendableMessageEvent: свойство ports
Базовая реализация Широко доступно
Эта функция хорошо отработана и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с апреля 2018 года.
Примечание: Эта функция доступна только в Сервисных рабочих процессах.
Чтение только свойство ports интерфейса ExtendableMessageEvent возвращает массив, содержащий объекты MessagePort, представляющие порты связанного канала сообщений (канала, через который отправляется сообщение).
Значение
Массив объектов MessagePort.
Примеры
Когда следующий код используется внутри сервисного рабочего процесса для ответа на push-сообщения, отправляя полученные данные через PushMessageData в основной контекст через сообщение канала, объект события onmessage будет ExtendableMessageEvent.
let port;
self.addEventListener("push", (e) => {
const obj = e.data.json();
if (obj.action === "subscribe" || obj.action === "unsubscribe") {
port.postMessage(obj);
} else if (obj.action === "init" || obj.action === "chatMsg") {
port.postMessage(obj);
}
});
self.onmessage = (e) => {
port = e.ports[0];
};
Спецификации
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
ports |
51 | 17 | 44 | 38 | 11.1 | 51 | 44 | 41 | 11.3 | 5.0 | 51 |
См. также
© 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/ExtendableMessageEvent/ports