两个窗口之间的电子应用ipc通信

时间:2016-03-15 07:41:27

标签: electron

有电子的ipc实现,它命名为ipcrenderer和ipcmain,它们用于主进程通信,它不适用于两个窗口之间的通信(甚至传递发射器的实例)。

我认为,真实的例子会更清晰(https://github.com/linuxenko/usprited)。我将工具栏和主窗口设为两个不同的窗口。唯一的问题是这两个窗口之间的通信,ipc不起作用,还没试过postmessage。您可以为此案例推荐什么?如何或哪个eventemitter,实现,用于电子应用程序的窗口之间的通信?

1 个答案:

答案 0 :(得分:1)

我认为您选择的IPC方法将取决于您需要在窗口之间共享的数据类型以及管理窗口的方式。例如,如果您从Main进程管理窗口,则可以使用Main进程作为中心集线器,使用Electron的'ipc'模块传递消息。如果您的窗口彼此了解,最好直接在它们之间交换消息,而无需通过主流程。

例如,如果您使用Electron的window.open从另一个窗口打开一个窗口,则可以在窗口代理上使用postMessage(在子窗口中,使用window.opener.postMessage)进行消息传递

当然,您也可以在两个窗口之间打开一个套接字或使用任何其他形式的IPC,特别是如果您需要传递大量数据。对于简单的消息和事件,postMessage应该没问题。