今回はMQTTをローカルネットワーク内で実験してみます。
有名ドコロのブローカーツールmosquittoと周辺ツールを使う感じです。
実際のところ
作業環境
- macOS 10.12.6
- Homebrew 1.3.4
- mosquitto 1.4.14 (build date 2017-09-30 02:42:20+0100)
おためし
ブローカーのmosquitto本体を立ち上げ。
デフォルトポートは1883、同一LAN内で動かすためIPアドレスは192.168.XXX.YYYなものを遣います。
$ mosquitto 1507267351: mosquitto version 1.4.14 (build date 2017-09-30 02:42:20+0100) starting 1507267351: Using default config. 1507267351: Opening ipv6 listen socket on port 1883. 1507267351: Opening ipv4 listen socket on port 1883. ...
mosquittoを導入すると、publisher とsubscriber がついてきます。
有難く使わせてもらいましょう。
まずはsubscriber。
これは起動して待つ感じ。
"-h"でホスト名かIPアドレス、"-t"でトピック名指定。"-q"は送信品質です。
$ mosquitto_sub -h localhost -t sensors/temperature -q 1
次にpublisher。
今回使うオプションはsubscriberと同じです。
$ mosquitto_pub -h localhost -t sensors/temperature -m 64 -q 1 $ mosquitto_pub -h localhost -t sensors/temperature -m 250 -q 1
subscriber側で先程の結果をみると……ちゃんと来てますね。
$ mosquitto_sub -h localhost -t sensors/temperature -q 1 64 250
同一ネットワークなら手間なく相互接続可能
同一ネットワークなら、192.168.XXX.YYYな感じでIPアドレスを指定してあげると通信できます。
……なんだかIMみたいですねぇ……
$ mosquitto_sub -h localhost -t sensors/temperature -q 1 10000000000000 10000000000000 Big Brother is Wathicng you てすとてすと KAYU_UMA 感染者がいるぞ!
mosquittoの方にも接続してきたIPアドレス(LAN内)がでてきますね。
1507268565: New client connected from 192.168.0.8 as lens_efJHS80zrXXXXXXXXXXXXX (c1, k120).