MQTT-SNクライアントガイドの開発は、ステップバイステップでガイドを開始 研究開発 MQTT-SN 公開サブスクリプションメッセージングプロトコルを使用して IoT デバイスエージェント ()MQTTの特長センサーネットワーク用 MQTT技術委員会によるオアシス規格による
MQTT-SNは、IoTセンサーを作成するのに役立つプロトコルバージョンです。 エージェント IoTデバイスを消費する低エネルギー。 MQTT-SNプロトコル(センサー用SN MQTT)は、 プログラム TCP/IP 以外のネットワークで埋め込まれたデバイスを通信ジグビー,ブルートゥース, zウェーブまたは ワイヤーで縛られたおよび無線センサー ネットワークを含む他の媒体。 このプロトコルは、 お問い合わせ MQTTのようなコネクティッドな環境。 しかし、任意の双方向& 損失ネットワークプロトコルのサポート MQTTおよびMQTT-SN。 MQTT SNの指定はで利用できますmqtt.org. (日本語)
マシン・ツー・マシン、機械・ツー・ユーザー、機械・ツー・モバイル通信が実現できない なし 強力なセントラルサーバー。 MQTTエッジデバイスとアプリケーションはMQTTを介して通信します ブローカー 中央サーバーとして機能する。 ダウンロードできますエンタープライズMQTT ブローカー実行できる Windows と Linux で起動します。
SNの主な利点は、パケットのサイズの縮小と接続性がないため、確実に お問い合わせ トランザクションはエネルギーを削減します。 以下は、テクニカル 利点/使用の相違 MQTT-SN オーバー MQTTお問い合わせ
固定ヘッダ
可変ヘッダー
トピックIdType | クリーンセッション | ウィル | ログイン | QoSについて | ディップ |
---|---|---|---|---|---|
0, 1 | 2 | 3 | 3 | 5,63 | 7月7日 |
DUP、Retain、WILL、CleanSessionはMQTTと同じです。
必要に応じて、0 または 1 つに設定します。
フラグの 0 と 1'st ビットが指定するのに使われます トピックIDタイプ。
5、6ビットはQoSを指定するために使用されます。
ネットワーク上の新しいクライアントは、アドレスを見つけるためにsearchgwパケットを放送する必要があります ゲートウェイ。 また、クライアントはMQTT-SNゲートウェイのアドレスを知っている場合は、直接接続できます。
検索の構造 GW パケット
1。 このメッセージは3バイトの長さです。 最初のバイトは 長さ。 ザ・オブ・ザ・ 2番目のバイトは 0x01 メッセージタイプです。 第三バイトは放送の半径です お問い合わせ 基礎的なネットワークにも設定します。
2。 このメッセージは、ネットワークにネットワークに放送されなければならない 時間間隔 GWINFOに返信メッセージが表示されます。
クライアントは2つの方法で接続できます。
1。 意志なしで接続 - 応答は、メッセージが不満になります
2。 意志との接続 - 応答はトピックになります リクエスト
長さ | MsgType(0x04) | フラグ | プロトコルID | 期間 | クライアントID |
---|---|---|---|---|---|
1 | 2 | 3 | 4.5マイル | 6-Nの |
トピック
長さ | MsgType(0x07) | フラグ | トピック |
---|---|---|---|
1 | 2 | 3-N の |
成功すると、ゲートウェイが送信されます メッセージ クライアントがリクエストを送らなければならない メッセージ
長さ | Msgtype(0x09) | ウィルムス |
---|---|---|
1 | 2-N |
MQTT-SNパケットが公開できる4つの方法があります。
登録されたトピックIDを使用して -ザ・オブ・ザ・ クライアントは トピック名をゲートウェイに登録し、受信したを使用して公開を開始します トピック 郵便番号
ショートトピックの使用 -ザ・オブ・ザ・ クライアントは トピック名の長さが2未満の場合、トピック名を使用して直接公開 バイト。
既定のトピックを使用する -ザ・オブ・ザ・ ゲートウェイは クライアントが発行するトピックIDが使用できる既定のトピックがあります。 ザ・オブ・ザ・ 事前定義 トピックのトピックIDがサーバーとクライアントの両方で知られているトピックID いいえ 登録が必要
アドホックのトピック – –これは、 特別な 1 所在地: クライアントは、単に開始できるゲートウェイへの接続を作成する必要はありません 出版情報 QoS フラグを -1 に設定するか、ゲートウェイが終了しません。 メンテナンス この種類の公開を処理するブローカーへの別のMQTT接続。 QoS -1 で 公開する クライアントは、既定のトピック ID または短いトピック名のみを使用できます。接続はありません セットアップ トピック登録はできません
登録・出版のパケット構造は以下の通りです。
会員登録
長さ | Msgtype(0x0A) | トピック | サインイン | トピック名 |
---|---|---|---|---|
1 | 2,3 | 4,53 | 5 日 |
トピックIDは、レジスタメッセージが送信されたときに0としてコードされなければならない メールでのお問い合わせ お問い合わせ クライアント。
クライアントは、以下を使用してRegackからトピックIDを取得することができます パッケージ コンテンツ
RegAckさん
長さ | Msgtype(0x0B) | トピック | サインイン | トピック名 |
---|---|---|---|---|
1 | 2,3 | 4,53 | 6月6日 |
クライアントは、適切なREGACKメッセージと一致しなければなりません。 ログイン メッセージ ID を使用してパケットを処理します。 クライアントは、REGACK の戻りコードと、その 0 のチェックをしなければなりません。 クライアント Topic id を使うと、レジスタパケットを再度送信する必要があります。
長さ | MsgType(0x0C) | フラグ | トピック | サインイン | データデータ |
---|---|---|---|---|---|
1 | 2 | 3,4, | 5,63 | 7月7日 |
クライアントは、以前に登録されていれば、トピックを購読するためにトピック ID を使うことができます。 トピック。 それは、 トピック名または短いトピック名を使用して、購読できます。 サブバックを受け取る メッセージ トピックID。 unsubscribeパケットは購読と同じです。 パケット構造 購読する unsubscribe は以下のとおりです。
コンテンツ
長さ | MsgType (サブスクリプション (0x12) / unsubscribe (0x14) | フラグ | MsgIdの特長 | トピックIDまたはトピック名 |
---|---|---|---|---|
1 | 2 | 3,4 | 5,6,5N |
サブスクリプションのパケットには、サブスクリプションを購読する場合の可変長があります。 使用方法 TopicName それ以外の場合は 7 バイトになります。
クライアントがゲートウェイから切断できる2つの方法があります。
永久に切断
クライアントは、disconnectパケットをdisconnectに送らなければならない 永久に。 それは、 MQTT と同じ機能。
睡眠障害
クライアントは、時間の経過とともに、接続解除メッセージを送信します。 行き方 眠る その時間の間、ゲートウェイは、この中にそのクライアントのメッセージをバッファします タイムタイム 期間。 クライアントは、 ping メッセージを送信して、バッファされたメッセージを取得する必要があります。 プレゼント バッファからメッセージを公開します。 クライアントは ping resp を受け取り、バッファが 空です。 ザ・オブ・ザ・ クライアントは指定された期間またはゲートウェイが考慮される前にpingを送信しなければならない 失われた クライアント。
長さ | MsgType(0x18) | 期間(任意) |
---|---|---|
1 | 2~3 |
MQTT-SNは、WILLのトピックとメッセージを随時更新するための規定を持っています。 お問い合わせ MQTT メッセージプロトコル上の高度な機能。
ウィルトップアップ
クライアントは、disconnectパケットをdisconnectに送らなければならない 永久に。 それは、 MQTT と同じ機能。
睡眠障害
クライアントは、時間の経過とともに、接続解除メッセージを送信します。 行き方 眠る その時間の間、ゲートウェイは、この中にそのクライアントのメッセージをバッファします タイムタイム 期間。 クライアントは、 ping メッセージを送信して、バッファされたメッセージを取得する必要があります。 プレゼント バッファからメッセージを公開します。 クライアントは ping resp を受け取り、バッファが 空です。 ザ・オブ・ザ・ クライアントは指定された期間またはゲートウェイが考慮される前にpingを送信しなければならない 失われた クライアント。
長さ | MsgType(0x1A) | フラグ | トピック |
---|---|---|---|
1 | 2 | 3-N の |
「Will Topic response」メッセージは、応答として送信されます。 お問い合わせ コンテンツ
長さ | MsgType (willtopicresp (0x1B) / willmessageresp (0x1D)) | リターンコード |
---|---|---|
1 | 2 |
戻りコードが 0 以外の場合、返済しなければならない ウィアトピー。
ウィルムスグPD
長さ | MsgType(0x1C) | ウィルムスグ |
---|---|---|
1 | 2-N |
クライアントは、次のメッセージに加えて、次のメッセージを追跡しなければならない お問い合わせ 送信する
1。 広告パケット
2.SearchGWについて
3.登録
広告のパケット
ネットワーク上のゲートウェイは広告パケットを送信します よくある質問 期間。 クライアントは、ネットワーク内のアクティブなゲートウェイのリストを維持する必要があります お問い合わせ 広告された持続期間。
検索GW
クライアントは、放送による検索メッセージに応答する必要があります は、 ログイン メッセージ。 ゲートウェイアドレスリストからアクティブなゲートウェイアドレスを送信する必要があります。
会員登録
クライアントが再接続されている場合は、レジスタメッセージを受け取ります お問い合わせ 前の登録とサブスクリプションのトピック名とトピックIDは、保存する必要があります お問い合わせ トピック名とID。