W3cubDocs

/DOM

ExtendableMessageEvent.source

This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The source read-only property of the ExtendableMessageEvent returns a reference to the Client object from which the message was sent.

Syntax

var mySource = ExtendableMessageEventInstance.source;

Value

A Client, ServiceWorker or MessagePort object.

Examples

When the following code is used inside a service worker to respond to a push messages by sending the data received via PushMessageData to the main context via a channel message, the event object of onmessage will be a ExtendableMessageEvent.

var port;

self.addEventListener('push', function(e) {
  var 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 = function(e) {
  console.log(e.source);
  port = e.ports[0];
}

Specifications

Specification Status Comment
Service Workers
The definition of 'ExtendableMessageEvent.source' in that specification.
Editor's Draft Initial definition.

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support ? 45.0 (45.0)[1] No support ? No support
Feature Android Android Webview Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support No support No support (Yes) (Yes) No support ? No support ?

[1] Service workers (and Push) have been disabled in the Firefox 45 and 52 Extended Support Releases (ESR.)

See also

© 2005–2018 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/ExtendableMessageEvent/source