ElectronでUDP通信する
ElectronでUDP通信(送受信)を実装する必要だったので実装内容のメモ。
開発環境
Windows 10
Electron 3.0.2
実装内容
- UDP通信には、dgramを使用。
- UDP通信行うには、メインプロセス側で通信を行う必要がある。(レンダープロセスから直接UDP通信はできない)
- レンダープロセスでUDP信号を受け渡しするには、メインプロセスとレンダープラセス間を通信するIPC通信を利用する必要がある。
- IPC通信とUDP通信を値の橋渡しは、メインプロセスでおこなう。
通信の流れ
Electron ( メインプロセス ← IPC通信 → レンダープロセス )
↑
UDP通信
↓
外部アプリ
実装サンプル
ElectronでUDP通信を行うサンプル。
サンプルコード Github
アプリの使い方 README
windows版 / mac版
- 上記のアプリのpackageフォルダ内にアプリデータあるので、OSに合わせたアプリを設置。
- IP/Portの設定ファイルの更新
- アプリを立ち上げると、最初に受信ログ部分に設定ファイル内容が出力されます。
- あとは、IP/PORTがつながっていれば、相互にメッセージが送受信できます。
実装コード概要
メインプロセス
送信
レンダープロセスから受け取った値を、 文字列をバッファに変換して送信しています。
受信
最初にレンダープロセスからIPC通信を行い、
レンダープロセスとメインプロセスが相互に通信できるように設定する。
UDP通信で送られてきた、バッファオブジェクトを文字列に変換し、
IPC通信でそのままレンダープロセスに送る。
レンダープロセス
レンダープロセスでは、IPC通信を介してUDP通信を送受信しています。
送信メッセージ
テキストエリアに入力した文字列をICP通信でメインプロセスに送られます。
UDP受信ログ
メインプロセス側で行ったUDP通信のメッセージを
IPC通信を介して受け取りテキストエリアに出力しています。
その他
今回はUDP通信で扱う値は、文字列のみですがアプリに応じて値を変えたり、
json,osc等のフォーマットで最適化すれば扱いやすくなります。
Author And Source
この問題について(ElectronでUDP通信する), 我々は、より多くの情報をここで見つけました https://qiita.com/yoshihitofujiwara/items/0cf5f96af3630c95471a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .