バイ Ponlakshmi
MQTTの特長メッセージは1つから直接送信されません 別のものに。 「MQTT トピック」に割り当てられます。 ザ・オブ・ザ・MQTTブローカーそれから配布します メッセージ 購読しているクライアント プロトコルの用語トピック 参照するUTF-8 文字列ブローカーが購読したクライアントごとにメッセージをフィルタリングするために使用されます。 誰かが購読するとき トピックは、そのトピックにメッセージを True に設定されたメッセージで公開し、トピックは 設立年月日 いつか ブローカーが切断する最後の加入者、クリーンなセッションが確立されます。クリーン セッションは True に設定されます。 MQTT クライアントが接続します。
センサー/water_level/water_status– センサー、water_level、water_status トピックレベル。
フォワードスラッシュ(/)- トピックレベルの分離器。
トピックは1つ以上のトピックレベルで構成されています。 フォワードスラッシュは各トピックレベル(トピックレベル)を分離します 分離器)。 ブローカーは、事前登録されるトピックを必要としません。
MQTTのトピックは、メッセージキューと比較して非常に軽量です。 出版またはサブスクライブ前に トピック, クライアントはトピックを作成する必要はありません。 事前の初期化がなければ、ブローカーは有効に受け入れます トピック。
いくつかの例を見てみましょう:
で使用されるMQTTのトピックを見るふりがな ブローカーお問い合わせ
UTF-8エンコードされた文字列の長さを除き、レベル数に制限はありません。 トピック名またはトピックフィルタ。 トピック名とトピックフィルタは次のガイドラインに従います。
サブスクリプションのトピックフィルタ複数のトピックを一度に購読できるように、特別なワイルドカード文字を含むことができます。 ザ・オブ・ザ・ ワイルドカード文字は、 トピック フィルターで使用されるが、トピック名では使用されていません。 ワイルドカードは2種類に分類されます。
2つのワイルドカード文字の1つが、クライアントのサブスクライブで与えられたトプティックフィルタで遭遇する場合、 トピックレベルの使用 分離器は重要です。 トピックレベルのセパレータは、トピックフィルタまたはトピックのどこにでも存在できます お名前. ゼロ長さのトピック レベルは、隣接するトピックレベルの分離器によって示されます。
トピックのシングルレベルのワイルドカード文字はプラス記号「+」で表されます。 トピックフィルタの シングルレベルのワイルドカードは、 最初および最後を含むあらゆるレベルで使用される。 フィルタの全レベルを埋める必要があります。 利用する それはある場合もあります 複数のレベルとマルチレベルのワイルドカードと組み合わせて、トプティックフィルタで使用されます。
例えば、
"tank/water_level/+" のようなトピックは "tank/water_level/flow_rate1" と一致します。 "tank/water_level/flow_rate2" ではなく、 "tank/water_level/flow_rate1/increase" がリリースされました。 また、シングルレベルのワイルドカードが1つのレベルだけマッチするので、 「tank/+」は、 「tank」と「tank/」と一致します。
ワイルドカード文字「#」は、任意のレベルに一致させるために使用できるマルチレベルのワイルドカードです。 トピック。 親と子レベルの任意の数は、マルチレベルのワイルドカードによって表されます。 マルチレベル ワイルドカード文字 トピックレベルの区切り文字だけまたは後のいずれかを指定する必要があります。 与えられた最後の文字でなければなりません トピックフィルタ いずれかのシナリオ。
例えば、
クライアントが「tank/water_level/flow_rate1/#」を購読している場合、公開されたメッセージが表示されます。 以下 次のトピック名:
ドルで始まるトピック サインイン ($)お問い合わせ $-symbol トピックは、ブローカーの内部統計です。 トピックフィルタ ワイルドカードで始まります 文字 (# または +) は、$ 文字で始まるトピック名と一致してはなりません。 クライアントは、 送信可能 サーバーによると、このようなトピック名を持つ他のクライアントへのメッセージ。 トピック 開始する名前 主要な $ 文字は可能性があります サーバーの実装により、追加の目的に使用されます。 $SYS/は、トピックの重要なプレフィックスになりました サーバ固有のものを含む データまたは制御 API。 主要な $ 文字を含むトピックは、アプリケーションのアプリケーションで使用できません 自身の理由。
以下の情報は、通常$SYS/で保存されますが、ブローカーの実装は異なります。 以下にいくつかの例を示します。
上記は、メッセージのトピックの基本です。 MQTTのトピックは、あなたが見ることができるように、動的であり、たくさんのものを提供 柔軟性。 トピック全体の階層を変更することなく、その拡張性を使用し続ける 新しいセンサーによる これらをトピックツリーに追加します。
プロトコルの詳細については、