2020-03-11 19:07:54 -06:00
|
|
|
# MessageChannelMain
|
|
|
|
|
|
|
|
`MessageChannelMain` is the main-process-side equivalent of the DOM
|
|
|
|
[`MessageChannel`][] object. Its singular function is to create a pair of
|
|
|
|
connected [`MessagePortMain`](message-port-main.md) objects.
|
|
|
|
|
|
|
|
See the [Channel Messaging API][] documentation for more information on using
|
|
|
|
channel messaging.
|
|
|
|
|
|
|
|
## Class: MessageChannelMain
|
|
|
|
|
2021-04-29 01:56:31 -06:00
|
|
|
> Channel interface for channel messaging in the main process.
|
|
|
|
|
2020-04-02 12:28:43 -06:00
|
|
|
Process: [Main](../glossary.md#main-process)
|
|
|
|
|
2020-03-11 19:07:54 -06:00
|
|
|
Example:
|
2020-11-05 15:12:43 -07:00
|
|
|
|
2020-03-11 19:07:54 -06:00
|
|
|
```js
|
2020-09-28 11:58:32 -06:00
|
|
|
// Main process
|
2023-06-05 01:26:26 -06:00
|
|
|
const { BrowserWindow, MessageChannelMain } = require('electron')
|
|
|
|
const w = new BrowserWindow()
|
2020-03-11 19:07:54 -06:00
|
|
|
const { port1, port2 } = new MessageChannelMain()
|
|
|
|
w.webContents.postMessage('port', null, [port2])
|
|
|
|
port1.postMessage({ some: 'message' })
|
2020-09-28 11:58:32 -06:00
|
|
|
|
|
|
|
// Renderer process
|
|
|
|
const { ipcRenderer } = require('electron')
|
|
|
|
ipcRenderer.on('port', (e) => {
|
|
|
|
// e.ports is a list of ports sent along with this message
|
2023-06-05 01:26:26 -06:00
|
|
|
e.ports[0].onmessage = (messageEvent) => {
|
2020-09-28 11:58:32 -06:00
|
|
|
console.log(messageEvent.data)
|
2023-06-05 01:26:26 -06:00
|
|
|
}
|
2020-09-28 11:58:32 -06:00
|
|
|
})
|
2020-03-11 19:07:54 -06:00
|
|
|
```
|
|
|
|
|
|
|
|
### Instance Properties
|
|
|
|
|
|
|
|
#### `channel.port1`
|
|
|
|
|
|
|
|
A [`MessagePortMain`](message-port-main.md) property.
|
|
|
|
|
|
|
|
#### `channel.port2`
|
|
|
|
|
|
|
|
A [`MessagePortMain`](message-port-main.md) property.
|
|
|
|
|
|
|
|
[`MessageChannel`]: https://developer.mozilla.org/en-US/docs/Web/API/MessageChannel
|
|
|
|
[Channel Messaging API]: https://developer.mozilla.org/en-US/docs/Web/API/Channel_Messaging_API
|