The ports
read-only property of the ExtendableMessageEvent
interface returns the array containing the MessagePort
objects representing the ports of the associated message channel (the channel the message is being sent through.)
Syntax
var myPorts = extendableMessageEvent.ports;
Value
An array of MessagePort
objects.
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) { port = e.ports[0]; }
Specifications
Specification | Status | Comment |
---|---|---|
Service Workers The definition of 'ExtendableMessageEvent.ports' in that specification. |
Working Draft | Initial definition. |
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 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
ports | Chrome ? | Edge ? | Firefox
Full support
45
| IE No support No | Opera ? | Safari No support No | WebView Android No support No | Chrome Android ? | Firefox Android Full support 45 | Opera Android ? | Safari iOS No support No | Samsung Internet Android ? |
Legend
- Full support
- Full support
- No support
- No support
- Compatibility unknown
- Compatibility unknown
- Experimental. Expect behavior to change in the future.
- Experimental. Expect behavior to change in the future.
- See implementation notes.
- See implementation notes.