Spec-Zone.ru › Web APIs

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];
};

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

Спецификация
Сервисные рабочие процессы
# extendablemessage-event-ports

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

Рабочий стол Мобильные устройства
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

Spec-Zone.ru

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