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つの方法があります。
お問い合わせザ・オブ・ザ・ クライアントは トピック名をゲートウェイに登録し、受信したを使用して公開を開始します トピック 郵便番号
ショート トピック ・ザ・オブ・ザ・ クライアントは トピック名の長さが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。