はかますたいる!きょろの技的雑記

井上恭輔(@kyoro353)の私的かつ技的な日記です。米国サンフランシスコで暮らすエンジニアです。

UbuntuでMQTTブローカーを構築

AWS IoTが発表されてMQTTがまた盛り上がっていますね! 今日は自前でMQTTブローカーを構築して試してみたので備考録を残しておきます。 MQTTの説明についてはネット上により詳しく丁寧な情報が乗っていますので、ここでは割愛。

Ubuntu 14.04上でMosquittoを使ったMQTTブローカー(サーバ)を構築します。

Mosquitto

http://mosquitto.org/

パッケージリストにリポジトリを追加

kyoro@iot:~$ sudo add-apt-repository ppa:mosquitto-dev/mosquitto-ppa
[sudo] password for kyoro:

More info: https://launchpad.net/~mosquitto-dev/+archive/ubuntu/mosquitto-ppa
Press [ENTER] to continue or ctrl-c to cancel adding it

gpg: keyring `/tmp/tmpmtjlhsxh/secring.gpg' created
gpg: keyring `/tmp/tmpmtjlhsxh/pubring.gpg' created
gpg: requesting key 262C4500 from hkp server keyserver.ubuntu.com
gpg: /tmp/tmpmtjlhsxh/trustdb.gpg: trustdb created
gpg: key 262C4500: public key "Launchpad mosquitto" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
OK

パッケージリストの更新

kyoro@iot:~$ sudo apt-get update

クライアントの導入

sudo apt-get install mosquitto-clients

ブローカー(サーバ)の導入

sudo apt-get install mosquitto

Mosquitto導入完了!

接続テスト

クライアントでtestを購読

kyoro@iot:~$ mosquitto_sub -d -t test
Client mosqsub/12779-iot sending CONNECT
Client mosqsub/12779-iot received CONNACK
Client mosqsub/12779-iot sending SUBSCRIBE (Mid: 1, Topic: test, QoS: 0)
Client mosqsub/12779-iot received SUBACK
Subscribed (mid: 1): 0

ターミナルを別に開いてメッセージをpublish

kyoro@iot:~$ mosquitto_pub -d -t test -m "Hello world!"
Client mosqpub/12852-iot sending CONNECT
Client mosqpub/12852-iot received CONNACK
Client mosqpub/12852-iot sending PUBLISH (d0, q0, r0, m1, 'test', ... (12 bytes))
Client mosqpub/12852-iot sending DISCONNECT

クライアント側で受信されます

Client mosqsub/12779-iot received PUBLISH (d0, q0, r0, m0, 'test', ... (12 bytes))
Hello world!

めっちゃお手軽ですね!
次回は認証プラグインの導入をやってみようと思います。

※そんなことより前回の記事から1年以上ブログ放置しててビビる…!