【问题标题】:Electron application architecture - IPC vs APIElectron 应用架构 - IPC 与 API
【发布时间】:2021-05-11 00:05:12
【问题描述】:
我正在深入研究 Electron,现在正在寻找创建应用程序架构的最佳方法。
到目前为止,最好的做法似乎是分离关注点 - 让主进程与系统通信,而渲染器处理 UI 内容。
据我所知,似乎有两种不同的方式可以让这两个进程进行通信:
-
通过 API,让主进程启动一个隐藏的渲染器进程以用作运行服务器的 Web Worker,然后从“主渲染器进程”访问其端点
-
使用 IPC,让主进程监听来自渲染进程的事件
我没有看到比较哪种方法更好以及为什么。
-
使用这两种方法的优缺点是什么?
-
这两个选项中的任何一个都比另一个更好吗?
【问题讨论】:
标签:
node.js
electron
electron-builder
【解决方案1】:
使用本地网络服务器将强制通信使用 HTTP/WS 协议并通过计算机的 TCP/IP 堆栈,以便最终到达网卡。这在很多方面都很昂贵,并且没有理由为桌面应用程序遵循这种方法。所以只有一件事(性能)。
就开发人员体验而言,如果您只需要在 Electron 的 main 和 renderer 进程之间进行通信,那么您将与任何其他基于回调的 HTTP 库一样好。如果你需要派生其他进程来做一些事件循环阻塞的事情,那么你需要实现一个“承诺”的 IPC 通信机制并相应地配置 webpack 条目,这需要一些工作。
我已经成功地遵循了最后一种方法,所以如果您需要任何帮助,请在 cmets 中告诉我。