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