【问题标题】:Electron Instance Communication电子实例通信
【发布时间】:2026-01-14 05:00:01
【问题描述】:

我正在尝试找出一种在 Electron 实例之间进行通信的方法。我正在开发的应用程序允许多个实例,每个实例与一个文件相关联。我希望能够将消息从协议产生的实例广播到所有实例。

如果我使用app.requestSingleInstanceLock() 获得第一个实例的锁定,我可以使用事件second-instance 发送消息,但只能发送到第一个实例。

我也尝试使用BrowserWindow.getAllWindows() 枚举所有窗口,但看起来这些是指在电子实例中创建的实例。

使用电子:9.3.1。

【问题讨论】:

    标签: electron protocols instance message communication


    【解决方案1】:

    我不知道任何“好”的方式。我认为你只需要让一个应用程序在它想要​​通信时通过fs 模块写入文件,并且期望接收​​消息的应用程序实例必须监视这个文件以进行如下更改:

    fs.watchFile("myLogFile.log", (curr, prev) => {
       // read file for the message
    });
    

    【讨论】:

    • 这个解决方案对我有用。我使用fs.watch + app.getPath('appData') 跨实例获取消息。