MQTT入門ガイドでは、詳しい説明を説明しますMQTTの特長MQTT用 初心者
アンディ・スタンフォード・クラーク(IBM)とアーレン・ニッパーがデザインを考える プロトコル 1999年(平成11年)に誕生したMQTT。 このMQTTを化学する目的は、 サイトマップ 衛星上のオイルパイプラインテレメトリーシステム上のセンサー。 公開サブスクリプションを使用する モデル TCP/IPに基づく安定した信頼性の高いネットワーク接続を実現 ヘッダー 伝送コストの削減、信頼性の高いメッセージサポート MQTT バージョン 3.1.1 は リリースオアシズ スタンダード2014年10月 MQTTバージョン5のアップグレードは、いくつか追加します 新着情報 2019年3月にリリースされた機能と機能。 それは企業の必要性を満たし、準備します お問い合わせ 未来の産業の発展の変化。 MQTT は ISO として宣言され、 オアシズ 2010年の標準。 MQTT 5.0 は、2019 年に新しい OASIS 規格になりました。
プロトコル MQTT は 1999 年に発明され、その成長は多くの始まりました 生年月日 あと。 5年後、MQTT 3.1.1はOASISとISO規格でリリースされました。 アフター 2010年、 3.1 から 3.1.1 にバージョンが変更され、 OASIS 規格は新しいバージョンを認可しましたMQTT5の特長 仕様. . 続いて、2019年3月、MQTT5が新たに開催 認定資格 OASISおよびISO規格。
2013年以降、「MQTT」という言葉は少し意味がなかった。MQTTの特長 バージョン3.12013年 OASIS指定委員会に提出 お問い合わせ 憲章では、定義へのマイナーな変更のみが受け入れられることを保証します。 お問い合わせ 10月29日 2014年、OASISは標準の維持を追い越した後版3.1.1を発表しました IBMから.
MQTT 5の特長MQTT 3.1.1の継承者です。 2018年1月初公開 お問い合わせ OASIS、ISO規格に準拠した2019年発売
MQTTがスタートしたガイドは、継承者について説明しています。 3.1.1 は MQTT5。 答えは簡単です。MQTTの特長 プロトコルCONNECT の固定ヘッダーを定義します。 パッケージ これらプロトコルバージョンに 1 バイトの値を格納します。 MQTT 3.1.1に持っています 値「3」 3.1.1 は「4」という値を持っています。 そのため、3.1.1(MQTT5)の継承者は値を持っています 5。 この番号は、プロトコル名と値の両方の「5」です。 MQTT5 導入事例 変更点 MQTT3.1.1に比べ、改善を行いました。
以下、MQTT5は、明確な概要を確立するために説明しました お問い合わせ 機能的な目的 MQTT メッセージングプロトコルの
MQTT はプロトコルを作成する意図で設計されました お問い合わせ オイルパイプラインは、最小限のバッテリーで衛星接続を介して接続することができます 損失および損失 帯域幅の使用。 現在、次の目的を設定しています。 コア MQTTプロトコル:
このシンプルなMQTTがモデルを立ち上げました 改善点 お問い合わせ 既存のMQTT5クライアント/ユーザーのニーズを満たすための目的。
MQTT 5仕様には5つのアイドルデザインがあります。 彼ら お問い合わせ
MQTTのガイドがPUBLISHのクリアカットビューを提供 パッケージ そして出版の役割。 メッセージの送信プロセスはパブリッシングと呼ばれます。 クライアント 別のクライアントに直接メッセージを公開することはできません。 しかし、MQTTクライアントは 出版情報 ブローカーへのメッセージ。 各メッセージにはトピックが含まれている必要があります。 MQTT クライアントのみ 出版情報 単一のトピックへのメッセージ、トピックのグループに公開することはできません。 ブローカーは、 フィルター トピックの下のメッセージを転送し、接続されたクライアントにメッセージを転送します。 すべて そのトピックを購読します。 PUBLISH パケットはクライアントからサーバーまたはデバイスに送信されます。 ヴェルサ アプリケーションメッセージの送信 各PUBLISHのパケットに含まれているペイロードがあります お問い合わせ バイト形式で送信されるデータ(メッセージ)。 送信者(公開者)は、 それは望んでいます クライアントが必要とする形式であっても、バイナリデータ、テキストデータを送信する。
SUBSCRIBE パケットは、MQTT クライアントから MQTT クライアントへ送信されます。MQTT サーバー, 複数のサブスクリプションを作成するために使用されます。 私達にについての明確化があります お問い合わせ SUBSCRIBE パケットと購読ロール。 特定のトピックでメッセージを受信するには、 クライアントは そのトピックを購読します。 Server は、顧客への公開パケットを送信します。 インタビュー これらのサブスクリプションと互換性のあるトピックへのユーティリティメッセージ。 サブスクライブ パッケージ また、サーバーがアプリケーションメッセージを送信することができる最大QoSを指定する お問い合わせ クライアント。 ブローカーからクライアントにメッセージを送信するには、ブローカーは同じを使用します 出版情報 出版社が使用する方法。 許可されている複数のトピックを購読する 2 の使用 ワイルドカード文字(+と#)。 すべてのサブスクリプションは、ブローカーによって受け入れられます サブスクリプション認識メッセージ。 ログインMQTTクライアントトピックを購読するだけ できません。 特定のクライアントを購読します。
SUBSCRIBE メッセージの矛盾は、 UNSUBSCRIBE メッセージ ログイン UNSUBSCRIBE パケットは、クライアントからサーバーに送信され、トピックから退会します。 それは、 削除 ブローカーの既存のサブスクリプション。 これらのUnsubscribeメッセージもリストを持っています トピックス MQTT クライアントが退会を希望するからです。 退会確認のため、ブローカー 送信する UNSUBSCRIBE は、MQTT クライアントにメッセージを通知します。 彼らは、彼らがそれを仮定することができます MQTT クライアントが承認メッセージを受信した後、サブスクリプションは削除されます お問い合わせ ブローカー。
一般的に、TCP/IP 上で MQTT を話す任意の IoT デバイス スタック缶 お問い合わせ MQTT クライアントと呼ばれる。 出版社と購読者の両方がMQTTと見なされます クライアント。 ザ・オブ・ザ・ 出版者および購読者はクライアントが現在出版しているかどうかを示します メッセージまたは クライアントがメッセージを受信するために購読しているかどうか。 出版する者 メッセージ 出版社と呼ばれ、情報を受け取るために購読する者は お問い合わせ 加入者。
公開サブスクリプションモデルは異なる クライアントサーバモデル。 PUB/SUBモデルでは、複数のパブリッシャーが1つの加入者にメッセージを公開しています。 以上 1つの購読者より同時に1つのパブリッシャーからのメッセージを受け取ります。 お問い合わせ モデル, MQTT クライアントは直接連絡できません。 しかし、彼らは助けを借りて通信します MQTTの特長 ブローカー。 そのため、MQTTプロトコルのクライアント実装は非常に簡単です ストレートフォワードと 効率的な。 MQTT クライアントは、ネットワーク上で MQTT ブローカーに接続するデバイスです。 接続。
ザ・オブ・ザ・MQTTの特長 ブローカーMQTTクライアント間の中間体として機能します。 お問い合わせ カーネル どれも 公開/サブスクリプションプロトコル。 MQTTブローカーは、MQTTブローカーが実行する独自のソフトウェアです パソコン (クラウド内) 第三者が自己生成またはホストすることができます。 MQTTブローカー 助けて MQTT クライアントは、データを共有、管理し、デバイスを制御します。 ブローカーには すべてのメッセージを受信し、トピックでメッセージをフィルタリングする責任 それから これらのメッセージを購読しているクライアントに配信します。 MQTTの特長 ブローカーは購読できません お問い合わせ MQTT クライアント。 しかし、MQTTクライアント(購読者)は他のクライアントに購読することができます (出版者) ブローカーはメッセージを保持している間、メッセージを保存しません。 パーシステント 接続、QoS レベルは、一時的に保存されているメッセージを表示できます。 ブローカー。
公開されたメッセージが MQTT クライアントに送信されると、 です。 ブローカーから削除。 クライアントが特定のトピックを購読していない場合や お問い合わせ クライアントが現在接続されていない場合は、メッセージが削除されます。 ブローカー。 しかし、ブローカーは、保持されたメッセージの形でデータを保存することができます。 これにより、新しい 購読者は、直接最後の値を取得します。 また、デバイスが呼び出されるとき 「持続的」 ブローカーは、セッションのすべての情報を監視し、排除します 脆弱性 そして安全な顧客関係。 ザ・オブ・ザ・MQTTブローカー減らすのに使用されています ネットワークの緊張 なし セキュリティを侵害する。 バックアップブローカーは、顧客の負荷を共有するためにセットアップすることができます オンサイト、クラウド、または両方の組み合わせで複数のサーバー。
MQTT 接続は TCP/IP に基づく。 クライアントとクライアントの両方 ブローカー TCP/IP スタックが必要です。 MQTT の接続は 1 つのクライアント間で常にあります お問い合わせ ブローカー。 MQTTクライアントは直接接続しません。 MQTTクライアント(出版者) 加入者) 主に、拘束されたデバイス間の接続を確立するために使用されています。 アフター ネットワーク MQTTクライアント間で接続が確立され、最初に送信されたパケットが クライアントへ サーバは CONNECT パケットでなければなりません。 最初に接続を確立するために、クライアント 送信する ブローカーにメッセージを接続します。 ブローカーが接続メッセージを受信したら、 CONNACK のメッセージに応答します。 開口部の隙間が大きい場合 ネットワーク CONNECT コントロール パケット メッセージを送信すると、ブローカーは閉じます 接続。 接続が確立されると、ブローカーはクライアントが送信するまで開くようにします お問い合わせ コマンドを切断するか、ネットワーク接続がネットワークの問題の一部を破棄します。 MQTTの特長 取得する 開始されたガイドはクライアントとクライアント上のMQTT接続の詳細を提供します ブローカー。
MQTT は簡単なメッセージをに従って提供しますQoSレベルお問い合わせ MQTTの特長 ブローカーは、クライアント・サーバー・コネクションごとにQoSレベルを指定できます。 のみ使用 との間の MQTT の送信者および受信機。 QoS レベルは、メッセージかどうかを識別するために使用される お問い合わせ クライアントからサーバーから受け取ったか否か QoS レベルはクライアントのときに使用されます。 送信する 特定のトピックへのサブスクリプション。 クライアントが複数のサブスクリプションを購読する場合 トピック, その後 彼らはMQTTの必要性に基づいて異なるトピックのために異なるQoSレベルを使用することができます クライアント
MQTT がガイドを始めると、ガイドが明確に見えます QoS. そこにあります QoSの3つのレベル お問い合わせ
QoSの最初のレベルは0です。 このレベルでは、メッセージが送信される お問い合わせ お問い合わせ 一度か決して受信機。 受信機からの応答の保証はありません お問い合わせ クライアント。 送信者がQoS 0でメッセージを送信した場合、受信者は、またはない場合があります。 プレゼント メッセージ。 クライアントは、メッセージが受信機に送信されるかどうかを知らない お問い合わせ 「ファイアとフォジェ」とも呼ばれるレベルです。 このレベルでは、保証はありません 配達およびブローカーによって確認されていない
QoSの2番目のレベルは1です。 このレベルでは、メッセージは必須です。 お問い合わせ 送信する 少なくとも一度受信機。 しかし、メッセージは受信機に配信されます。 複数回 ブローカーから承認されるまで。 送信者がメッセージを送信する場合 QoSと 1つは、購読された受取人がトピックの下にメッセージを受信しなければならず、 お問い合わせ PUBACKパケット。 このレベルでは、送信は保証されますが、メッセージは到達することができます ブローカー 一度以上。
QoSの3番目のレベルは2です。 サービス お問い合わせ MQTT。 このレベルでは、受取人から1回だけメッセージが届きます。 お問い合わせ 最も安全な QoSレベル 送信者と受信者の間に、4つのシーケンスがあります メッセージ。 詳しくはこちら メッセージは送信者からの受信機に送られ、受信機はありました 送信する そのメッセージに対する認識。 一度にメッセージが送られました。 お問い合わせ ほとんどの アプリケーションは、このサービスレベルの品質を使用します。
持続的なセッション間の継続的な接続を参照 クライアント そして、 MQTT メッセージブローカー。 各 MQTT クライアントは、持続的なセッションを保存したり、クリーンにする必要があります。 セッション のために 例えば、MQTTクライアントブローカー、各クライアントに接続されている 出版・出版 トピックへのサブスクライブは、持続的なセッションまたはクリーンセッションを含む必要があります。 ザ・オブ・ザ・ パーシステント インターネットがクライアントに信頼できないときにセッションが使用されます。 MQTT持続セッション できます Connect メッセージを送信し、クリーンなセッションフラグを 0 に設定することで作成されます。 もし、 クライアント CONNECT メッセージを送信するセッションがない場合、新しいPersistentセッションが 作成します。 クライアントに既にセッションがある場合、クライアントはセッションを再起動します。 リリース ネットワーク接続中に存在します。 購読されたクライアントが突然から切断した場合 お問い合わせ ブローカー、それはからそのトピックに公表されたメッセージのいずれかを受け取ることはありません 出版社。
この問題を克服するために、この持続的なセッションまたはクリーンセッションが使用されます。 MQTTブローカー サポート パーシステントセッションのセッション 0(false) と 1(true) をきれいにします。 まず、MQTTクライアント お問い合わせ ブローカーに接続し、この永続的なセッションのブローカーを要求することができます。 ザ・オブ・ザ・ ブローカー すべてのクライアント情報を保存します。 クライアントがトピックを購読する必要がある場合、 お問い合わせ 1 または 2 の QoS レベルを使用し、ブローカーは未配信メッセージを公開します。 アフター 接続解除、クライアント再接続、ブローカーはすべての未配信を送信します メッセージ, クライアントにメッセージキューの方法でブローカーによって保存されているもの。 いつか メッセージ ブローカーは、クライアントが接続時間から切断されていることを検知します。 セッション 期限切れタイマーが始まります。 クライアントが CONNECT メッセージを送信すると、 CleanSession フラグ 1。 永続的なセッションが再接続する前に期限が切れた場合、保存されたメッセージ お問い合わせ ブローカーは廃棄されます。
保持されたメッセージは重要なMQTT機能です。 続ける お問い合わせ 将来のクライアント/購読者のためのトピックに関する最新のキーメッセージ。 出版社は、 ブローカー 保持されたメッセージフラグを設定することで、トピックの最後のメッセージを保持します。 あります メニュー 一度に1つのトピックごとのメッセージを保持しました。 保持されたメッセージはMQTTに保存されます クライアント (サーバ) ザ・オブ・ザ・メッセージの保持 MQTTの特長MQTT クライアントの公開を許可する メッセージ クライアントをサブスクライブするために後で配達のために貯えられる。 メッセージの保持は、 MQTT Retainビットの設定 クライアントは、QoS レベルの公開または購読が可能です。 以下 特定のトピックが、保持されたメッセージは、保持されたフラグが 設定する MQTT 3.1.1.の指定で本当。 保持メッセージの最も一般的な使用は、 識別する 新しい加入者に既知のメッセージ。
保持メッセージは、特定の新しい加入者に送信されます トピック, その後、 ブローカーはリクエストを処理し、設定されたクライアントにメッセージを公開します。 お問い合わせ サーバ 先に進む前に保持フラグをクリアする必要があります。その後、クライアントはそれを示す それ自体。 お問い合わせ 保持されたメッセージを削除すると、クライアントは保持されたメッセージをペイロードで空の送信します。 特定のトピックは、サーバーがそのトピックの下に保持されたメッセージを削除します。 それから メッセージ 保持メッセージに有効期限間隔を設定します。 満了間隔の後 時間、 保持されたメッセージは削除されます。 保持されたメッセージ機能は、維持するのに便利です クライアントの最後のメッセージ、特に状態が常に変更されていない場合に役立ちます。 サービス 質は保持されたメッセージに影響を与えません。 保持されたメッセージ機能は、 LWT(ラスト) MQTT でテスト機能します。
最後に、特定のMQTTブローカーに保存されたメッセージです。 仕様 クライアント。 ザ・オブ・ザ・Last Will メッセージ以下を持っている通常のMQTTメッセージです フィールドは トピック、メッセージ、QoS、フラグを保持します。 予期しないシャットダウンがある場合、 最後まで ユーザーは、またはMQTTクライアントに通知するために、Will and Testamentが使用されます。 MQTT クライアントは 使用する メッセージを公開します。 LWTの基本的な技術は、接続している場合 壊れ目, その後、Last Willメッセージを使用して、関心のある加入者に通知するのに役立ちます 彼ら 接続を紛失しました。 例えば、ブローカーが検出したときにMQTT3.1.1で 接続解除, それは、その特定のすべての加入者にLast Willメッセージを送信します トピック。 MQTT で LWT の正しい使用を作ることは、不要な監視の多くを避けます メッセージ
2013年以降、「MQTT」という言葉は少し意味がなかった。MQTTの特長 バージョン3.12013年 OASIS指定委員会に提出 お問い合わせ 憲章では、定義へのマイナーな変更のみが受け入れられることを保証します。 お問い合わせ 10月29日 2014年、OASISは標準の維持を追い越した後版3.1.1を発表しました から IBM. Will Delay は、特定のメッセージの送信を遅延させる機能を提供します。 お問い合わせ 接続が中断されます。 接続後、Will Delay のいずれか 間隔はあります 消えた、またはセッションが終了したら、Will メッセージが公開される必要があります。 ネットワーク 接続は、Will 遅延間隔が遅れる前に MQTT クライアントで開かれます こだわり ザ・オブ・ザ・ ウィル遅延間隔が長い場合、メッセージが公開されるべきではありません お問い合わせ セッションの有効期限間隔。 ウィル・ディレイが期待どおりに公開する 間隔はあります セッションの有効期限間隔よりも短い。 クライアントの公開を遅らせるサーバー ウィル 上記のいずれかのWill Delay間隔が切れるか、または消去されるまでメッセージ イベント まずは。 最後のウィールとウィリー・ディレイをデリバリーします。
制御パケットでキープを記述します。常にです。 スケジュール MQTTクライアントの伝送プロセスの開始と終了の間の時間。 安心・安心 秒単位で測定される2バイト整数。 MQTT クライアントは、 責任について 送信の間の時間間隔を超過しないかどうかを確認してください MQTTの特長 パケットの制御 継続的価値が 0 の場合、キーキーキーキーは、キーキーキーキーキーを押します。 オフ また、クライアントは、特定のスケジュールにMQTT制御パケットを送信しません。 ザ・オブ・ザ・ 実績 keep-alive の値はアプリケーション固有のものです。 最大値は 18 時間 12 です。 分、および 15秒。 サーバは、MQTT 制御パケットを受信しないため、Keep-alive 時間 スケジュール 1回半ばまで到達します。 常に生きている値がゼロであるため、クライアントは 閉じる ネットワーク接続 Keep-alive が制御パケットにある場合、 アクセス ブローカーとクライアントの間ではまだ開いて、ブローカーとブローカーを確認しています クライアント 接続します。
WebSocketはコンピュータ通信プロトコルです。 それは提供します 二方向 単一のTCP接続上の同時伝送。 とMQTT オーバー ウェブソケット, すべて ブラウザ MQTT 装置は可能です。 MQTT は、Web ソケット接続を介して転送されます。 ザ・オブ・ザ・ ウェブソケットURL クライアントとサーバーを接続するために使用されます。 単一のWebSocketのデータフレームは含まれています 複数の MQTT は、MQTT プロトコルに影響を与えないパケットを制御します。
次の条件は、WebSocketをWebSocketで使用するために適用されるべきです MQTT、
プロパティ(MQTTv5)は、おそらく最も重要な1つです コンビネーション インフォメーション お問い合わせMQTTプロトコルこのMQTTがガイドを始めてから説明し、それらが利用可能 ほとんどの MQTT メッセージタイプ。 CONNECT、CONNACK、PUBLISH、PUBACKのようなMQTT制御パケットで、 PUBREC、 PUBREL, PUBCOMP, SUBSCRIBE, SUBACK, UNSUBSCRIBE, UNSUBACK, DISCONNECT, AUTHパケット セットを持っている 変数ヘッダの最後のフィールドにあるユーザのプロパティ。 CONNECT パケットも コンテンツ Willのプロパティフィールドにペイロードが設定されているオプション。 ユーザー プロパティ フィールドはプロパティフィールドの一部です。 プロパティは、使用状況とデータを定義します。 は、 デフォルト値で、MQTT クライアントに追加情報を提供することができます。
CONNECT メッセージには、異なるプロパティフィールドがあります。 ポーランド プロパティフィールドはメッセージタイプに依存するので、メッセージ。 ユーザープロパティは、 お問い合わせ 複数回表示できる名前も複数回表示可能 複数の クライアントとサーバーにメッセージを転送する際に、名前、値のペア。 主にあります のために使用される クライアント間でメタデータを送信する ユーザのプロパティは、ユーザがユーザが有効にできる ソリューション お問い合わせ MQTTプロトコル すべてのメッセージと応答。 彼らは唯一の意味を持っている ユーザの ユーザーのプロパティがユーザーによって定義されるため、有効化。
セッションの有効期限間隔は、ブローカーの期間を定義します ショップ お問い合わせ その特定のMQTTクライアントのセッション情報。 セッション有効期限は4バイト 整数する 秒単位で表されます。 値が 0 の場合、MQTT 3.1.1 では、セッションの有効期限 間隔はあります ネットワーク接続が閉じられたとき、またセッションが終了します。 セッション エクスパイリー CONNECT パケットの間隔は、セッションが満了したときに MQTT クライアントによって使用されます。 間隔はあります 不在。 セッションが MQTT 制御に一度含まれている以上間隔を超過する場合 パケットと また、CONNECT パケットでは、セッションの有効期限間隔はゼロで、それは として考慮される プロトコルエラー。 非ゼロ時に有効なDICONNECTパケットとして扱いません。 セッション サーバが受信する時間間隔を解放します。 サーバの接続解除の場合、 セッション サーバへ送信することができません。 メッセージの有効期限間隔はあります と同様 セッションの有効期限間隔。 MQTT 5.0 プロトコルによって導入された新機能です。 両方とも お問い合わせ セッションの有効期限とメッセージの有効期限間隔は、容量を改善するために使用することができますMQTTブローカーお問い合わせ
Reason のコードは MQTT5 の指定によって導入される新しい特徴です そして、 詳細はこちら MQTT でガイドを始める 1バイトの符号なし値です です。 操作指示の結果に使用する。 成功の完了 操作で 理由コードは 0*80 以下を示します。 成功のコードは 0 です。 理由コード バリュー 失敗を示す 0*80 より大きい。 多くのMQTTパケットには、理由コードが含まれています。 理由 定義済みのプロトコルエラーがコード内で発生したことを示しました。 これらの理由コードは よくある質問 クライアントとブローカーのエラー条件を認めたパケットで運ばれます。 ザ・オブ・ザ・ 理由 コードはネガティブな認識と呼ばれることもあります。 理由コード16でACKを公開 MQTT3.1.1は、マッチした加入者がないことを示しています。 その結果、MQTTv5で、 お問い合わせ トピックが何らかの範囲で使用するかどうかを判断できる。 以下の制御 パケットは許可します 要求された機能が成功したかどうかを判断する購読者。 制御パケット お問い合わせ 変数ヘッダーの部分として単一理由コードはCONNACK、PUBACK、PUBREC、PUBRELです、 PUBCOMPの 接続、およびAUTH。 制御パケットには、複数の理由のコードのリストがあります。 お問い合わせ ペイロードはSUBACKとUNSUBACKです。
スケジュール | ハックス | お名前 (必須) | パケット |
---|---|---|---|
0X00の | 成功事例 | 在庫、PUBACK、PUBREC、PUBREL、PUBCOMP、UNSUBACK、AUTH | |
0X00の | 通常の切断 | 接続解除 | |
0X00の | 助成金 QoS 0 | フィードバック | |
1 | 0X01の | 助成金 QoS 1 | フィードバック |
2 | 0X02の特長 | 助成金 QoS 2 | サブACk |
3 | 0X04の特長 | ウィルメッセージとの接続解除 | 接続解除 |
16 日 | 0X10の特長 | マッチング契約なし | バック、PUBREC |
17 日 | 0X11の | サブスクリプションが存在しません | フォロー |
24 日 | 0X18の | 認証を続行 | |
25 日 | 0x19の | 再認証 | アウス |
128 の | 0x80の | 不特定エラー | 在庫、在庫、在庫、在庫、在庫、在庫 |
129の | 0x81の | 変形したパケット | ナビゲーション、ディスクコネクト |
130円 | 0x82の | プロトコルエラー | ナビゲーション、ディスクコネクト |
131の | 0x83の | 実装固有のエラー | 在庫、在庫、在庫、在庫、在庫、在庫 |
132の | 0x84の | サポートされていないプロトコルバージョン | コンセプト |
133の | 0x85の | クライアントID(識別子)が有効でない | コンセプト |
134の | 0x86の | 悪いユーザー名またはパスワード | コンセプト |
135の | 0x87の | 許可されていない | 在庫、在庫、在庫、在庫、在庫、在庫 | 136 の | 0x88の | サーバーが利用できなくなった | コンセプト |
137の | 0x89の | サーバーの忙しい | ナビゲーション、ディスクコネクト |
138の | 0x8Aの | 禁止事項 | コンセプト |
139 の | 0x8Bの | サーバのシャットダウン | ディスコネクト |
140 円 | 0x8Cの | 悪い認証方法 | ナビゲーション、ディスクコネクト |
141の | 0x8Dの | 生き続けるタイムアウト | ディスコネクト |
142人 | 0x8Eの | セッション | ディスコネクト |
143 の | 0x8Fの | トピックフィルタ無効 | バックアップ、監視、接続解除 |
144の | 0x90の | トピック名 無効 | コンソール、PUBACK、PUBREC、DICONNECT |
145の | 0x91の | 使用中のパケット識別子 | PUBACK、PUBREC、SUBACK、UNSUBACK |
146の | 0x92の | パケット識別子が見つかりません | PUBREL、PUBCOMP |
147の | 0x93の | 受け取る 最高は超過しました | ディスコネクト |
148の | 0x94の | トピック 別名で無効 | ディスコネクト |
149 の | 0x95の | パケットが大きすぎる | ナビゲーション、ディスクコネクト |
150円 | 0x96の | メッセージ率が高すぎる | ディスコネクト |
151の | 0x97の | クォータは超過しました | 在庫、在庫、在庫、在庫、在庫 |
152号 | 0x98の | 管理行動 | ディスコネクト |
153の | 0x99の | ペイロード形式 無効 | コンソール、PUBACK、PUBREC、DICONNECT |
154 の | 0x9A | 未サポート | ナビゲーション、ディスクコネクト |
155の | 0x9Bの | QoSはサポートしていません | ナビゲーション、ディスクコネクト |
156の | 0x9Cの | 別のサーバーを使用する | ナビゲーション、ディスクコネクト |
157の | 0x9Dの | サーバーの移動 | ナビゲーション、ディスクコネクト |
158の | 0x9Eの | 共有サブスクリプションがサポートされていない | バックアップ、接続解除 |
159の | 0x9Fの | 接続速度が超過 | ナビゲーション、ディスクコネクト |
160円 | 0xA0の | 最大接続時間 | ディスコネクト |
161号 | 0xA1の | サブスクリプション識別子がサポートされていない | バックアップ、接続解除 |
162円 | 0xA2 | ワイルドカードサブスクリプションはサポートされていません | バックアップ、接続解除 |
クライアントのみがMQTTv3.1.1で接続解除メッセージを送信できます。 ザ・オブ・ザ・ TCP/IPの特長 サーバが発生した問題が発生した場合は、セッションを終了します。 サーバは送信できます 接続解除 MQTTv5の理由コードと共にクライアントにメッセージを送る。 サーバーの切断は起こります いつか クライアントは、DICONNECT パケットを理由コードで送信します。 切断は最終的なです ステップで MQTTプロセス。 DISCONNECTはクライアントから送信される最後のMQTT制御パケットです。 お問い合わせ サーバ。 サーバーの接続がネットワーク接続の理由を示す 休館日 ネットワーク接続を閉じる前に、クライアントまたはサーバーMAYはDICONNECTを送信 パケット。 もし、 Reason コード 0x00 (Normal) で最初に DISCONNECT パケットを送信しないクライアント 切断) しかし、ネットワーク接続は閉鎖され、接続はWill Messageを持っています。 メッセージ 出版情報
ペイロード フォーマットは、ペイロードを含むことができるすべての MQTT パケットの一部です。メッセージが公開されるときにペイロード フォーマットを指定できるようにします。これは、メッセージの受信者に転送できます。一部の MQTT 制御パケットには、最後の部分にペイロードが含まれます。ペイロード フォーマット フィールドを必要とする制御パケットは、CONNECT、SUBSCRIBE、SUBACK、UNSUBSCRIBE、UNSUBACK です。PUBLISH 制御パケットでは、ペイロード フォーマット フィールドはオプションです。これは、アプリケーション メッセージと見なされるためです。ペイロード フィールドは、PUBLISH パケットと CONNECT パケットの will プロパティにのみ存在します。サーバーは、アプリケーション メッセージを受信するすべてのサブスクライバーに、ペイロード フォーマット インジケーターを変更せずに送信する必要があります。受信者は、ペイロードが指定されたフォーマットであることを確認できます。PUBACK、PUBREC、または causal code が送信されない場合、ペイロード フォーマットが正しくありません。
コンテンツタイプは、PUBLISHパケットのWILLプロパティにのみ存在します。 そして、 CONNECT パケット。 MIME(多目的インターネットメールエクステンション - コンテンツを許可する タイプ サーバ側からクライアント側へ送信するデータ) メッセージは 出版情報 メッセージの受信者に転送できます。 サーバは送信しなければなりません お問い合わせ コンテンツタイプを変更することなく、すべての購読者にコンテンツメッセージ。 ザ・オブ・ザ・ コンテンツタイプは パケットに含まれている1回以上は、プロトコルとみなされる エラー。 ザ・オブ・ザ・ コンテンツタイプの値は、アプリケーションメッセージの送信と受信によって定義されます。 できません。 メッセージ転送中にコンテンツタイプをトランクします。
MQTT内のFormerte/responseシステムは応答を提供します タイトル そして、 data 属性に連絡して、レスポンスメッセージが発行者に返されるようにします。 リクエスト クライアントの機能を追加して、サーバーから設定情報を取得する方法 お問い合わせ 応答ヘッダーを設定します。 一部のアプリケーションでは、リクエスト/応答の連絡先をリクエスト/応答する場合があります。 お問い合わせ MQTT。 このバージョンのMQTTには、いくつかの目的のために使用できる3つのプロパティがあります。 フィードバック トピック、相関データ、要求/応答情報。
MQTT クライアントは、要求されたメッセージをトピックに公開します。 転送する すべての購読された顧客。 同じトピック名に登録された複数の回答者があります。 ザ・オブ・ザ・ 応答担当者はリクエストメッセージに基づいてアクションを起こし、応答トピックを公開します お問い合わせ クライアント。 応答メッセージは、どのQOSでも、応答者がセッションを使用することができるか クチコミ インターバルと共有サブスクリプション。 主催者は、その旨を必ず確認する責任を負います。 お問い合わせ 応答トピックで設定したトピック名を公開し、購読する権限 宿泊施設 それは、 回答者は、回答者に対して権威を持っていることを確認するために、回答者の責任です サインアップ 要求されたトピックに、回答者のトピックを公開します。
要求応答の相互作用プロセス:
サブスクリプション中に、クライアントはサブスクリプションを指定できます 識別子。 サブスクリプション識別子は、整数値バイトが続く 購読者の識別子を表します。 サブスクリプション識別子には1つの値があります。 268,435,455. サブスクリプション識別子の値がゼロの場合、プロトコルエラーです。 ザ・オブ・ザ・ サブスクリプション識別子は、クライアントがどのサブスクリプションかを決定することを可能にします サブスクリプション 送信されるメッセージを引き起こしました。 クライアントがサブスクリプションを指定できるとき 識別子 サブスクリプション中に、ブローカーはマッピング関係を確立し、保存します 間の距離 このサブスクリプションとサブスクリプション識別子が正常に作成または作成するとき 変更点 サブスクリプション。 PUBLISHパケットをこのクライアントに送る必要がある場合 サブスクリプション、ブローカーはこのPUBLISHでサブスクリプション識別子を返します パケット。 出版物が結果である場合の多数のサブスクリプション識別子は加えられます 複数のサブスクリプションの同一アイテム。 この場合、注文はそうではありません 重要な。
MQTT v5 では、サーバーの動作が利用することで変更されます。 サブスクリプション オプション。 アプリケーションを可能にするために主に限られたサブスクリプションオプションを提供します。 お問い合わせ 含まれるもの このクライアント(ローカルなし)に表示されたメッセージやオプションを送信しないオプション サブスクリプションに保存されたメッセージの処理。 MQTT v5では、サブスクリプションオプションのサポート QoS, ローカルなし, 公開として保持, 処理の保持. 送信しないと便利です 保持される 再接続したときに既存のサブスクリプションへのメッセージ、およびクライアントはいつかわからない お問い合わせ セッションの前の接続でサブスクリプションが完了しました。 それは有用ではない お問い合わせ 顧客が変更を受けたいと思う新しいサブスクリプションのために保存されたメッセージを送信します 通知は初期状態を知りません。 サブスクリプションオプションは、 お問い合わせ サーバが Application Message をクライアントに送信できる最大 QoS レベル。 ザ・オブ・ザ・ サブスクリプション識別子とサブスクリプションオプションは、このMQTTによって明確に説明されます 取得する ガイドを始める
Topic AliasはMQTT 5.0プロトコルによって導入された新機能です。 お問い合わせ です。 トピックのサイズを減らすことによって公開されたパケットのサイズを減らすためのメカニズム フィールド。 それは、 トピック名を省略できるようにすることで、MQTT パケットのオーバーヘッドサイズを削減します。 お問い合わせ 小さな整数。 クライアントとサーバーは独立して指定します。, どのように多くのトピックがそれらにエイリアス 許可します。 Topic Aliasはトピックではなくトピックを識別するために使用される整数値です 名前。 お問い合わせ トピック名が長く、同じトピック名が繰り返し使用される場合に便利です。 お問い合わせ ネットワーク接続 トピックエイリアスのマッピングはネットワーク内でのみ存在します 接続と接続 そのネットワーク接続の寿命だけ続きます。 これらのマッピングが使用される場合 によって クライアントとサーバーは、それぞれ独立しています。 ほとんどの場合、彼らはそうではありません 必須ですが、多くのお客様が頻繁にリリースされると、大幅に削減できます。 ネットワーク 交通アクセス
フロー制御は、データのレートを管理するプロセスです トランスミッション 間の距離MQTTクライアント. . 未確認の回数を制御するのに便利です パブリッシュ パケット。 クライアントとサーバーが、保留中の信頼できるメッセージの数を指定できるようにする(QoS > 0 ) 独立。 その後、送信者は、このようなメッセージを送信し、これを以下に学習を停止します クォータ。 ザ・オブ・ザ・ クライアントまたはサーバーは、初期のディスパッチ見積り値よりも多く受けるべきではありません。 ゼロ。 お問い合わせ 他のMQTT制御、パケットは引き続き処理し、クライアントであっても応答しなければなりません そして、 サーバーの引用語句の価値はゼロです。 これは、信頼できるメッセージのレートを制限するために使用されます お問い合わせ 一度にパスに何があるかを制御する。 主に数値の制御に使用されます インフォメーション 信頼できるメッセージの送信。
ここでは、最大パケット長を定義しています。 このパケットの長さ 仕様 ヘッダーとそのパケットに送信されたデータを含むパケット全体の大きさ。 許可する クライアントとサーバーを独立して、サポートするパケット容量の最大値を決定します。 送信する セッションパートナーに大きなパケットがエラーです。
任意サーバー機能 可用性は特徴のセットを定義します ということ お問い合わせ サーバは許可せず、クライアントにこの関数を指定するための仕組みを提供 から サーバ。 サーバー機能の可用性の主な機能は、最大QoS、保持 利用できる、 ワイルドカードサブスクリプション 利用可能、サブスクリプション識別子 利用可能、および共有 サブスクリプション 利用できる。 サーバがこれらの機能を宣言した場合、クライアントは利用できません。 これらを使う 機能はエラーと見なされます。 サーバが機能を有効にすることができないという事実 はじめに MQTTのバージョンは、機能が機能しないクライアントに通知することによって可能になります 許可される。 この機能は、このような好みの行動を報告し、特定の行動を追加することができます 理由 クライアントがこれらの機能の1つを使用した場合のコード。
認証を強化し、認証を実装する チャレンジレスポンスマナー 認証を有効にする仕組みを提供します。 ユーザー名とユーザー名 相互認識を含むパスワード。 高められた認証は信頼します 認証 認証プロセス全体を完了するためのメソッドと認証データ。 ザ・オブ・ザ・ 認証 メソッドは、クライアントとサーバー間で送信されたデータのオブジェクトの合意です。 お問い合わせ 認証データ。 クライアントのデータ転送とプロセスは必須です。 サーバへ 認証を完了します。 これにより、SASL(Simple Authentication and Security Layer)が使用可能 スタイル クライアントとサーバーの両方でサポートされている場合、認証を使用する 再認証 接続内のクライアント。 MQTTは、強化された認証の実装を提供しています。 お問い合わせ クライアントとサーバーの両方で強化された認証の実装が任意です。
これにより、サーバーは、サーバーが Keep-alive の値を指定できるようにします。 クライアント お問い合わせ また、サーバーを使用して、サーバーが最大の許容範囲を設定することができます。
この記事がMQTTを有効にするための詳細な説明を提供希望 早割 MQTTでキックスタートする採用者。