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 WorkersThe 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.
Update compatibility data on GitHub
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Chrome
? |
Edge
? |
Firefox Full support 45 Full support 45 Notes' Extended Support Releases (ESR) before Firefox 78 ESR do not support service workers and the Push API. |
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.
See also
ExtendableMessageEvent.ports by Mozilla Contributors is licensed under CC-BY-SA 2.5.