The message
event of the ServiceWorkerGlobalScope
interface occurs when incoming messages are received. Controlled pages can use the ServiceWorker.postMessage()
method to send messages to service workers.
The service worker can optionally send a response back via the Client.postMessage()
, corresponding to the controlled page.
Bubbles | No |
---|---|
Cancelable | No |
Interface | ExtendableMessageEvent |
Event handler property | onmessage |
Examples
In the below example a page gets a handle to the ServiceWorker
object via ServiceWorkerRegistration.active
, and then calls its postMessage()
function.
// 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"); }); }
The service worker can receive the message by listening to the message
event:
// 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"); });
Specifications
Specification | Status |
---|---|
Service Workers The definition of 'message' in that specification. |
Working Draft |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
message event | Chrome Full support 40 | Edge Full support ≤79 | Firefox
Full support
44
| IE No support No | Opera Full support 24 | Safari Full support 11.1 | WebView Android Full support 40 | Chrome Android Full support 40 | Firefox Android Full support 44 | Opera Android Full support 24 | Safari iOS Full support 11.3 | Samsung Internet Android Full support 4.0 |
Legend
- Full support
- Full support
- No support
- No support
- Experimental. Expect behavior to change in the future.
- Experimental. Expect behavior to change in the future.
- See implementation notes.
- See implementation notes.