MQTT / RabbitMQ

前回のRabbitMQでMQTT(MQ Telemetry Transport)の動作確認もしてみたので、そのメモをしておきたいと思います。
MQTTについては以下参照。

HTTPからMQTTへ – IBMが提唱するモノとモノがつながる時代に最適化したプロトコル&アプライアンス
http://it.impressbm.co.jp/special/2013/12/09/5313

AMQP(Advanced Message Queuing Protocol)と何が違うのか、どのように使い分けるのか、ということですが、MQTTは組み込み機器等で軽量M2M(Machine-to-Machine)の通信で使われるもの、と認識しています。

インストールは、前回の手順の続きで、プラグインを追加し、サーバを再起動します。
環境 : MacOSX 10.9
参考 : https://gist.github.com/voluntas/8238751

./sbin/rabbitmq-plugins enable rabbitmq_mqtt
./sbin/rabbitmq-server

次に、PublisherとSubcriberのプログラムをPythonで用意します。
(これは参考サイトのものをそのIPアドレスを変えて使いました。pub.py,sub.py)
以下モジュールをインストールします。
環境 : Windows7

pip install paho-mqtt

通信内容をキャプチャして内容を見てみたかったので、別のマシンからアクセスすることにしました。
コマンドプロンプトをPub/Subと別々にひらき、それぞれを実行します。(subから実行。複数可)
pubを実行すると、

my/topic/string 0 hello world

と表示されます。

「軽量」ということなので、どんなパケットだろうということでパケットキャプチャしてみました。
mqtt_sub
上はsub側のバケット部分を選択しています。下はpub側。
mqtt_pub

確かに少ないですね。

Tags:

Leave a Reply