из release/app советую переместить сервер в main/ipc.js и импортнуть этот модуль в main/main.js
```
Кстати разобрался, спасибо @RewriteH , для передачи реал тайм даты из node.js модуля (release/ap.p....) использовал в нужном месте скрипта, где генерируется event, конструкцию типа:
ipcMain.emit('setWeather', { ..weatherData })
а в main.js
app
.whenReady()
.then(() => {
createWindow()
ipcMain.on('setWeather', (node) => {
mainWindow?.webContents.send('weatherData', node);
});
app.on('activate', () => {
if (mainWindow === null) createWindow();
});
})
.catch(console.log);
и в preload.js
contextBridge.exposeInMainWorld('electron', {
ipcRenderer: {
on(channel: 'weatherData' , func: (...args: unknown[]) => void) {
const subscription = (_event: IpcRendererEvent, ...args: unknown[]) =>
func(...args);
ipcRenderer.on(channel, subscription);
return () => {
ipcRenderer.removeListener(channel, subscription);
};
},
},
});
и наконец в реакт приложении в компоненте:
const WeatherEvents: FC = () => {
const { weatherStore } = useRootStore();
useEffect(() => {
window.electron.ipcRenderer.on('weatherData', (weather) => {
const { speed, humidity } = weather;
weatherStore.setWeather([
new WeatherItemStore(speed, humidity, name, {}, {}),
...weatherStore.currentWeather,
]);
});
}, []);
return null;
};
```
Пишу это сюда, что бы гуру проверили концепт и новичкам, таким как я, может быть полезно