Turns Electron IPCRenderer
into MessagePort.
Instead of learning/using different API for different communication channels, we should unite them into a single interface pattern, either MessagePort or WebSocket.
This package is expected to work in pair with electron-ipcmain-messageport
.
const IPCRendererMessagePort = require('electron-ipcrenderer-messageport');
const { ipcRenderer } = require('electron');
const messagePort = new IPCRendererMessagePort(ipcRenderer, 'channel_name');
messagePort.onmessage = event => {
// Could be either a string or Buffer
console.log(event.data);
};
messagePort.postMessage('Hello, World!');
Note: to match the paradigm of MessagePort, we do not support synchronous messages and callbacks.
If you need to send to <webview>
instead of host (i.e. sendToHost
), you can set sendToHost
to true
.
const messagePort = new IPCRendererMessagePort(ipcRenderer, 'channel_name', { sendToHost: true });
Like us? Star us.
Want to make it better? File us an issue.
Don't like something you see? Submit a pull request.