2016-03-15 15 views
5

電子のためのipc実装があり、それはipcrendererとipcmainという名前で、メインプロセス通信用であり、2つのウィンドウ間の通信(エミッタのインスタンスを通過する場合もあります)では機能しません。2つのウィンドウ間の電子アプリケーションのipc通信

実際の例がより明確になると思います(https://github.com/linuxenko/usprited)。私はツールバーとメインウィンドウを2つの異なるウィンドウにするだろう。唯一の問題は、この2つのウィンドウ間の通信であり、ipcは動作せず、まだpostmessageを試していませんでした。あなたはこのケースのためにお勧めできますか?電子アプリケーションのウィンドウ間で通信するために、どのようなイベント送信者、実装が使用されますか?

答えて

1

IPCの選択は、ウィンドウ間で共有する必要があるデータの種類とウィンドウの管理方法によって決まると思います。たとえば、Mainプロセスからウィンドウを管理する場合、MainプロセスをElectronの 'ipc'モジュールを使用してメッセージを渡す中央ハブとして使用できます。あなたのウィンドウがお互いを知っている場合は、Mainプロセスを経由せずに、それらの間でメッセージを直接やりとりするほうがよいでしょう。

あなたが使用して他の一つのウィンドウを開くと、電子のwindow.openたとえば、あなたはその後、メッセージパッシングのために(window.opener.postMessageを使用して、子ウィンドウ)のウィンドウプロキシでpostMessageを使用することができます。

もちろん、大量のデータを渡す必要がある場合は、2つのウィンドウ間でソケットを開くか、IPCの他の形式を使用することもできます。単純なメッセージとイベントの場合は、postMessageは問題ありません。

+0

ありがとうございます@inukshuk、メインプロセス経由のハブ通信のようなものは、より現実的に見えます、私はそれを試してみましょう。どうか、「2つの窓の間のソケット」とは何ですか?サーバーなしでも可能ですか? webrtc?もしそうなら、それを実装する方法を私に教えてください。それは非常に有望な解決策のようです。 –

+0

私はUNIXソケット(Windowsをサポートしていない場合)またはネットワークソケットを開くようなものを意味しました...あなたのプロセスの1つはサーバを再生する必要があります。私はWebRTCを考慮していませんでしたが、ビデオやオーディオをストリーミングしたい場合は非常にクールなアイデアかもしれません.Electronでできることはかなりクールです。 – inukshuk

+0

aaah、今私は理解して、ありがとう) –

関連する問題