Lesson 28 of 28 · javascript
Inter‑process Communication (IPC)
Duration: 12 mins
Inter‑process Communication (IPC)
Electron ships two IPC modules:
- ipcMain – used in the main process.
- ipcRenderer – used in a renderer (via the preload bridge).
Basic request/response pattern
preload/bridge.js
const { contextBridge, ipcRenderer } = require('electron');
contextBridge.exposeInMainWorld('api', {
getAppVersion: () => ipcRenderer.invoke('app:getVersion')
});
main.js
const { ipcMain, app } = require('electron');
ipcMain.handle('app:getVersion', () => app.getVersion());
renderer.js (runs in the page)
document.getElementById('ver').innerText = window.api.getAppVersion();
Sending a fire‑and‑forget message
// renderer
window.api.send('log', 'User clicked button');
// main
ipcMain.on('log', (e, msg) => console.log('[Renderer]', msg));
Use invoke/handle for request‑response (Promise‑based) and send/on for one‑way messages.