ExtendableMessageEvent
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2018.
Note: This feature is only available in Service Workers.
Giao diện ExtendableMessageEvent của Service Worker API đại diện cho đối tượng sự kiện của sự kiện message được kích hoạt trên một service worker (khi nhận được thông báo trên ServiceWorkerGlobalScope từ ngữ cảnh khác), kéo dài vòng đời của các sự kiện đó.
Giao diện này kế thừa từ giao diện ExtendableEvent.
Hàm khởi tạo
ExtendableMessageEvent()-
Tạo một phiên bản đối tượng
ExtendableMessageEventmới.
Thuộc tính phiên bản
Kế thừa các thuộc tính từ lớp cha, ExtendableEvent.
ExtendableMessageEvent.dataRead only-
Trả về dữ liệu của sự kiện. Có thể là bất kỳ loại dữ liệu nào. Nếu được phân phối trong sự kiện
messageerror, thuộc tính sẽ lànull. ExtendableMessageEvent.originRead only-
Trả về nguồn gốc của
Clientđã gửi thông báo. ExtendableMessageEvent.lastEventIdRead only-
Trong server-sent events, đại diện cho ID sự kiện cuối cùng của nguồn sự kiện.
ExtendableMessageEvent.sourceRead only-
Trả về tham chiếu đến đối tượng
Clientđã gửi thông báo. ExtendableMessageEvent.portsRead only-
Trả về mảng chứa các đối tượng
MessagePortđại diện cho các cổng của kênh thông báo liên kết.
Phương thức phiên bản
Kế thừa các phương thức từ lớp cha, ExtendableEvent.
Ví dụ
Trong ví dụ dưới đây, một trang lấy handle đến đối tượng ServiceWorker qua ServiceWorkerRegistration.active, rồi gọi hàm postMessage() của nó.
// in the page being controlled
if (navigator.serviceWorker) {
navigator.serviceWorker.register("service-worker.js");
navigator.serviceWorker.addEventListener("message", (event) => {
// event is a MessageEvent object
console.log(`The service worker sent me a message: ${event.data}`);
});
navigator.serviceWorker.ready.then((registration) => {
registration.active.postMessage("Hi service worker");
});
}
Service worker có thể nhận thông báo bằng cách lắng nghe sự kiện message:
// in the service worker
addEventListener("message", (event) => {
// event is an ExtendableMessageEvent object
console.log(`The client sent me a message: ${event.data}`);
event.source.postMessage("Hi client");
});
Thông số kỹ thuật
| Specification |
|---|
| Service Workers Nightly> # extendablemessageevent-interface> |