連載
» 2016年05月23日 07時00分 公開

MQTTで始めるIoTデバイスづくり:MQTTで始めるIoTデバイスの作り方 第1回:「MQTT」を知り「Mosquitto」を導入する (2/3)

[今岡通博,MONOist]

mosquittoの導入

 今回は「mosquitto」というMQTT Brokerを使います。筆者のPCはWindowsですのでこの環境に合ったmosquittoをこちら http://mosquitto.org/download/ からダウンロードしてインストールします。Windows版の場合、インストール時にOpenSSLとpthreadsのdllが必要とメッセージが出ますので、必要に応じて入手しましょう(入手先など詳細はReadmeに書かれています)。

 他のノード間でメッセージをやりとりをするときには、mosquittoを起動する前にポートを確認します。MQTTは1883番ポートを利用するのでファイアウォールなどの設定を確認し、1883番がメッセージの送受信に利用できる状態にしておきます(参考:Windows ファイアウォールでポートを開く)

 準備が整ったところで、mosquittoでブローカーを起動してみましょう。コマンドプロンプトを開いて、mosquittoがインストールされたディレクトリに移動し、そこで mosquitto -v と入力します(オプションの -v は全てのログを表示するモードです)。

c:\Program Files (x86)\mosquitto>mosquitto -v
1461811097: mosquitto version 1.4.3 (build date 19/08/2015 13:37:44.73) starting
1461811097: Using default config.
1461811097: Opening ipv6 listen socket on port 1883.
1461811097: Opening ipv4 listen socket on port 1883.

メッセージの送受信テスト

 mosquittoでブローカーを起動したら、あと2つ、コマンドプロンプトを立ち上げます。1つはサブスクライバー用、もう1つはパブリッシャー用です。

 この3つのコマンドプロンプトで、「パブリッシャーがPublishしたメッセージを、サブスクライバー側のコマンドプロンプトで受け取れるか」のテストしてみましょう。また、ブローカーを立ち上げたコマンドロンプトで、これらのやりとりのログを確認してましょう。

 まずはサブスクライバー側のコマンドプロンプトで、サブスクライブ要求を行います。

c:\Program Files (x86)\mosquitto>mosquitto_sub -h 192.168.1.16 -t "#" -v

 ここでは、mosquitto_subコマンドでブローカーに対してサブスクライブ要求メッセージを送っています。-h オプションで指定されたアドレスのブローカーに接続します(192.168.1.16はブローカーのアドレスです。今行っているテストではサブスクライバーもパブリッシャーもブローカーと同一PCで作業するのでlocalhostあるいは127.0.0.1でも同様です)。

 -t でトピックを指定します。“#”と指定すると全てのトピックに対してサブスクライブ要求を行います。最後の -v は指定しないと送られてきたメッセージのみが表示されますが、このオプションを指定するとトピックも表示されます。mosquitto_subは「Ctrl+C」で停止するまでパブリッシュされるメッセージを待ち続けます。

Copyright © ITmedia, Inc. All Rights Reserved.