Client process setup
Introduction
The BrowserWindow
and ChildProcess
are considered as the clients by the library, as you're not able to use those processes to forward the messages to any other process than main
one. Beside that aspect, Broker
object created on them uses the same API and features, as the one spawned on main
process.
BrowserWindow
This example uses React
as frontend framework, but rest of the code is universal, and you can apply it to any framework of your choice. Connecting the BrowserWindow
is simple and fast as you can see in following example:
- TypeScript
- JavaScript
import 'reflect-metadata';
import { Broker, BrokerClient, BrokerFactory } from 'electron-broker';
import React from 'react';
import ReactDOM from 'react-dom';
let broker: Broker;
async function createBroker() {
broker = await BrokerFactory.createRendererBroker({
secure: true,
});
broker.start();
}
async function init() {
await createBroker();
ReactDOM.render(
<App />,
document.getElementById('root'),
);
}
init();
import 'reflect-metadata';
import { Broker, BrokerClient, BrokerFactory } from 'electron-broker';
import React from 'react';
import ReactDOM from 'react-dom';
let broker;
async function createBroker() {
broker = await BrokerFactory.createRendererBroker({
secure: true,
});
broker.start();
}
async function init() {
await createBroker();
ReactDOM.render(
<App />,
document.getElementById('root'),
);
}
init();
The secure
property is used to indicate if your BrowserWindow
is using preload.js
file, but if you're not planning to use it, make sure to set this property to false
, to make Broker
send and receive messages by directly accessing ipcRenderer
object.
ChildProcess
Connecting the ChildProcess
is pretty straightforward, let's look at the following example:
- TypeScript
- JavaScript
import 'reflect-metadata';
import { Broker, BrokerClient, BrokerFactory } from 'electron-broker';
let broker: Broker;
async function createBroker() {
broker = await BrokerFactory.createProcessBroker();
broker.start();
}
async function init() {
await createBroker();
}
init();
import 'reflect-metadata';
import { Broker, BrokerClient, BrokerFactory } from 'electron-broker';
let broker;
async function createBroker() {
broker = await BrokerFactory.createProcessBroker();
broker.start();
}
async function init() {
await createBroker();
}
init();
The Broker
on ChildProcess
does not require any further configuration, to start sending and receiving messages.