Udpノードを使う
ここのところずっとNode-REDのサンプルを見ながら各ノードの使い方を確認しています。頭出しの記事はこちらをご確認ください。今回はUdpノードを見ていきます。構成はほとんどTcpノードのサンプルと同じです。通信プロトコルがUDPを使っているだけで、表面上はTCPノードのサンプルと変わりません。ということで、これ以降全部省略してもいいのですが、サンプルを全部舐めることに意義があるので、儀式的に記事を書きます。
UDPクライアントからメッセージを送信する
確認するサンプルは、「読み込み > サンプル > flows > node-red > network > udp > 01 - Transfer data using UDP protocol」です。
上段のUdp outノードを確認すると、以下のように設定されています。
- 送信:UDPメッセージ
- ポート:1881
- アドレス:localhost, ipv4
- ローカルポートをランダムに使用
localhostのポート番号1881番にipv4上でUDPメッセージを送信するようです。設定によってはブロードキャストメッセージやマルチキャストメッセージも送信できるようです。ipv6も選べます。
- 待ち受け:UDPメッセージ
- ポート:1881
- 種類:ipv4
- 出力:文字列
こちらは、UDPメッセージを待ち受けるようです。
Injectノードを実行すると、デバッグパネルに「Hello, World!」のログが出力されます。上段のフローで送信したUDPメッセージを下段のフローで受信してログ出力しています。
一応、動いてはいますが、これだけだとNode−RED内で完結してしまっているのでUDPサーバが動いている実感が湧きません。そこで、netcatコマンドを使ってUDPサーバにメッセージを送信してみます。
$ netcat -u localhost 1881 unko unko
Node-REDのデバッグパネルを確認するとnetcatから送信した美しいメッセージが表示されています。以上で、UDPクライアントからメッセージを送信できました。
まとめ
ここまで確認したことをまとめます。
- Udp outノードを利用してUDPメッセージが送信できる
- ブロードキャストやマルチキャストメッセージも送信できるっぽい
- Udp inノードを利用してUDPメッセージを受信できる
以上です。
あれ?Node-RED上にメッセージを送信するUDPサーバは構築できない?Udp outノードで待ち受けする設定がないので無理なのかな。
コメント
コメントを投稿