MQTT
MQTT
MQTTとはMQ Telemetry Transportプロトコルのことです
TCP/IPを利用しており、またHTTPよりも軽量な設計により、貧弱なデバイスでも高速な通信を実現することのできるプロトコルです
非同期通信によりネットワークが貧弱な場合でも利用しやすいです
無線のプロトコルの中でもマイコン等でよく使われています
また「N対N」(N=1,2,3…) で使用できるため、柔軟にシステムに対応させることができることも特徴です
メッセージの品質も環境に合わせ「3種類」設定することができます
実装
MQTTを扱うライブラリとしては、Eclipse Foundationという非営利組織によるライブラリが存在します
対応言語は Java, Python, JavaScript, GoLang, C, C++, Rust, C#(.Net), Android Service, Embedded C/C++で、 Eclipse Pahoというプロジェクトにより作成されたものです
C++のライブラリはここにあります
ライセンスは「Eclipse Public License v1.0」および「Eclipse Distribution License v1.0」であり、これの条件下でのみ使用・利用・配布などが出来ます
これは結局の所、ライブラリに追加・改変した後に公開したり配布する際には著作権やEPLとかを表示しろ的なことで、公開したり配布したりする際には気を付けてください
サンプルプログラムを見ながらだとコーディングするのがいいと思います
尚、jsonに加工してやり取りすることで、複数のプログラミング言語を組み合わせて利用することも容易です
注意するべき点
これの利用の際に気を付けるべき点がひとつあり、MQTTブローカーと呼ばれるサーバーをどれかのデバイス上で立てなければならないことです
サーバーの導入は容易で動作も軽いのだが、これをバックグラウンドで起動させて置かなければ動きません