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も選べます。


続いて、下段のUcp inノードを確認すると、以下のように設定されています。
  • 待ち受け: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ノードで待ち受けする設定がないので無理なのかな。

コメント

このブログの人気の投稿

Execノードを使う

SendGridのX-SMTPAPIヘッダの使い方(Section Tags、Substitution Tags編)

Joinノードを使う(その4)