2016-03-15 12 views
5

Istnieje implementacja ipc dla elektronu, o nazwie ipcrenderer i ipcmain, są one przeznaczone do głównej komunikacji procesowej i nie działa do komunikacji między dwoma oknami (nawet przekazując wystąpienie emitera).Aplikacja elektroniczna komunikacja ipc między dwoma oknami

Myślę, że z prawdziwym przykładem będzie bardziej przejrzyste (https://github.com/linuxenko/usprited). Ustawiłbym pasek narzędzi i główne okno na dwa różne okna. Jedynym problemem jest komunikacja między tymi dwoma oknami, ipc nie działa, nie próbował jeszcze post-news. Co możesz polecić w tym przypadku? Jak lub jaki eventemitter, implementacja, używa do komunikacji między oknami aplikacji elektronowej?

Odpowiedz

1

Myślę, że wybór metody IPC będzie zależeć od rodzaju danych, które należy udostępnić między oknami oraz sposobu zarządzania oknami. Na przykład, jeśli zarządzasz oknami z procesu głównego, możesz użyć procesu głównego jako centralnego koncentratora do przekazywania komunikatów przy użyciu modułów "ipc" firmy Electron. Jeśli twoje okna wiedzą o sobie nawzajem, prawdopodobnie lepiej jest wymieniać wiadomości bezpośrednio między nimi, bez przechodzenia przez proces Główny.

Jeśli otworzysz jedno okno z drugiego przy użyciu na przykład elektronicznego window.open elektronu, możesz użyć postMessage na proxy okna (w oknie podrzędnym, użyj window.opener.postMessage) do przekazywania wiadomości.

Oczywiście można również otworzyć gniazdo między dwoma oknami lub użyć innej formy IPC, zwłaszcza jeśli trzeba przekazać wiele danych. Dla prostych wiadomości i zdarzeń powinno być jednak dobrze.

+0

dziękuję @inukshuk, coś w rodzaju komunikacji w centrum za pośrednictwem głównego procesu wygląda bardziej realnie, spróbuję. Proszę, czy możesz wyjaśnić, co masz na myśli "gniazdo między dwoma oknami"? Czy to możliwe bez serwera? Webrtc? Jeśli tak, poproś mnie o to, jak go wdrożyć, wygląda na bardzo obiecujące rozwiązanie. –

+0

Miałem na myśli coś w rodzaju otwierania gniazda unixowego (jeśli nie obsługujesz okien) lub gniazd sieciowych ... jeden z twoich procesów musiałby zagrać na serwerze. Nie zastanawiałem się nad WebRTC, ale to może być świetny pomysł, jeśli chcesz przesyłać strumieniowo wideo lub audio ... to całkiem fajne, co możesz zrobić z Electronem. – inukshuk

+0

aaah, teraz rozumiem, dziękuję) –