MQTTとは
唐突ですが、MQTTについて説明します。
MQTTは情報の送り手と、情報の受け取り手との間で直接やり取りをするのではなく、「ブローカ」と呼ばれるサーバを介して行ないます。サーバー(ブローカ)が情報の中継を行ないます。
情報の送り手も、受け取り手も、クライアントとしてサーバー(ブローカ)に接続します。
サーバ(ブローカ)による中継は。基本的には即座に行われます。
ブローカがデータベースのように情報を蓄えることはありませんが、最新の情報は一時的に保持されます。
また、待機(サブスクライブ)開始前の最新情報を、保持しておく機能もあります。
やり取りをする情報(メッセージ)は任意です。Jsonと言う書式が用いられる場合もあるようですが、プレーンテキストでも、バイナリーでも、基本的には何でも構いません。
情報は、トピックと呼ばれるアドレスのようなもので識別されます。
トピックは「/」で区切られURLのような階層構造を持っています。
トッピックは送り手で付けられつけられます。
情報の受け取り手(サブスクラバー)は、トピックを指定して情報の受け取りを待機(サブスクライブ)します。
情報の受け取り手(サブスクラバー)がトピックを指定する際には、ワイルドカードも使えます。
同じ送り手(パブリッシャー)の同じ情報(トッピック)を、複数の受け取り手が受信することもできます。
複数の送り手(パブリッシャー)が、ひとつのサーバ(ブローカ)へメッセージを送ることもできます。