ExtendableMessageEvent: ports 属性

注意:此功能仅在 Service Workers 中可用。

portsExtendableMessageEvent 接口的只读属性,它返回包含表示关联消息通道(消息通过该通道发送)的端口的 MessagePort 对象的数组。

MessagePort 对象的数组。

示例

当在 Service Worker 中使用以下代码以通过 PushMessageData 通过 通道消息 将接收到的数据发送到主上下文来响应推送消息时,onmessage 的事件对象将是 ExtendableMessageEvent

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

规范

规范
Service Workers
# extendablemessage-event-ports

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

另请参阅