This is an experimental technology
Because this technology's specification has not stabilized, check the compatibility table for usage in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future versions of browsers as the specification changes.
The Client
interface of the ServiceWorker API represents the scope of a service worker client. A service worker client is either a document in a browser context or a SharedWorker
, which is controlled by an active worker. A client object acts as a snapshot representation of its associated service worker client in the scope of a service worker.
Client.postMessage()
ServiceWorkerClient
.Client.frameType
Read only
auxiliary
, top-level
, nested
, or none
.Client.id
Read only
Client
object.Client.url
Read only
This code is based on a snippet taken from the service worker post-message sample (see post-message live.) The code sends message data to which the service worker can reply via Client.postMessage()
.
The message is wrapped in a promise that resolves if the response doesn't contain an error and rejects with the error.
// service worker client (e.g. a document) function sendMessage(message) { return new Promise(function(resolve, reject) { // note that this is the ServiceWorker.postMessage version navigator.serviceWorker.controller.postMessage(message); window.serviceWorker.onMessage = function(e) { resolve(e.data); }; }); } // controlling service worker self.addEventListener("message", function(e) { // e.source is a client object e.source.postMessage("Hello! Your message was: " + e.data); });
Specification | Status | Comment |
---|---|---|
Service Workers The definition of 'Client' in that specification. | Working Draft | Initial definition. |
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support | 40.0[1] | 44.0 (44.0)[2] | No support | ? | No support |
Feature | Android | Firefox Mobile (Gecko) | Firefox OS | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|
Basic support | ? | 44.0 (44.0) | ? | No support | ? | No support | ? |
frameType
property is not supported in Chrome 43.0.
© 2005–2017 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Client