新しいプロジェクトがまとめたハードウェア接続、MQTTへの技術の使用、クエリの関連情報を、使用する必要があります
A、MQTTプロフィール
TCP / IPプロトコル上に構築された(パブリッシュ/サブスクライブ)パブリッシュ/サブスクライブ・モードの軽量プロトコルに基づいて、MQTT(メッセージキューテレメトリ交通、メッセージキューテレメトリー転送プロトコル)は、最大の利点は、MQTTがあることですリアルタイムのリモート・デバイスのための最小限のコードと限られた帯域幅で信頼性の高いメッセージングサービスを提供しています。これより広くものであり使用されているインスタントメッセージングプロトコル、小型機器、モバイルアプリケーションの低コスト、低帯域幅の使用など。
サーバーメッセージパブリッシュ/サブスクライブトランスポートプロトコル - MQTTは、クライアントに基づいています。MQTT契約は、軽量でシンプル、オープンかつ容易に実装でき、これらの機能は、非常に広い範囲に適するよう。マシン(M2M)通信及び観光情報(IOT)のインターネットへの機械:のような制約のある環境を含む多くの場合、です。衛星リンクセンサ、時折ダイヤルアップ医療機器、情報家電、および小型のデバイスのいくつかによって通信が広く用いられています。
第二に、特性
リモートセンサと制御装置の低帯域幅で動作MQTT通信プロトコルは、次のいくつかの主要な特性を有する信頼性の低いネットワークプロトコル設計、:
(1)多くのメッセージ配信を提供し、パブリッシュ/サブスクライブ・メッセージングモデルを使用して、アプリケーションを切り離します。
(2)メッセージ送信マスクの内容をロードします。
(3)TCP / IPを使用してネットワーク接続を提供します。
主流のMQTTは、データプッシュのためのTCPコネクションに基づいて、だけでなく、MQTT-SNと呼ばれるUDPベースのバージョンを持っています。異なる接続、当然異なる長所と短所がそれぞれに基づいて2つのバージョンがあるため。
サービス(QSS)の品質を公開するメッセージの3種類があります(4):
基礎となるTCP / IPネットワークに完全に依存し、ニュースリリース「せいぜい一度」。欠落や重複メッセージを発生します。すぐ後の第二の時間が送信されますので、このレベルは、以下の場合に使用することができ、環境センサデータ、読み出したレコードの損失は、問題ではありません。メッセージのプッシュ、プッシュ過去には、受信しませんでしたもう一度ネットワークを受けないとき、あなたのスマートデバイスがオフラインになっている場合、これは、APPの主要な一般的にプッシュする方法です。
発生する可能性があり、メッセージが到達することを保証するが、メッセージが繰り返される「少なくとも一度」。
「一度だけ」というメッセージに達するとを確保します。課金システムのより厳格な要件のいくつかでは、このレベルを使用することができます。課金システムでは、メッセージが繰り返されているか、欠落していることは、誤った結果につながります。このニュースリリースに最高品質のサービスは、ユーザーが受信し、一度だけ受信することを保証し、APPのインスタント通信をプッシュするために使用することができます。
もちろん、より少ない数、低帯域広帯域ステーション
第三に、原則
MQTTは、合意を達成するため、クライアントとサーバーの通信が完了する必要があり、通信プロセスでは、3つのプロトコルMQTTのアイデンティティがあります。パブリッシャー(パブリッシュ)、エージェント(ブローカー)(サーバー)、加入者(購読)。その中でも、ニュースのパブリッシャとサブスクライバは、クライアントは、メッセージプロキシサーバは、ニュースリリースを同時に加入することがあります。
二つの部分のトピック(トピック)と負荷(ペイロード):MQTTメッセージに送信しました:
- (1)トピックは、加入者のサブスクリプション(購読)した後、あなたがそのトピック(ペイロード)メッセージコンテンツを受信し、メッセージの種類として理解することができます。
- (2)ペイロードは、メッセージの内容として理解することができ、コンテンツは、加入者が使用したい特定のことをいいます。
第四に、達成するために
1.ダウンロードEMQ
2.後にAccessを起動
ローカルホスト:18083は、以下の図を取得するために、デフォルトの管理者アカウントのパスワードです
接続ノードは、グラフィカルツールを赤確立3.
(注)このテーマは、テーマトピックサブスクリプションが一致していなければならないということです
事業の通常の流れが完了した後、クライアントの接続を確認するために、グラフィックスページをEMQすることができます
メッセージを送信した後、泥棒は、実際にデータ接続が成功すると受け取ることができます
ここでは、実質的にもシンプルな接続MQTTを達成するために
あなたはEMQを使用したい、あなたが使用することができませんフォローアップアリの原理は似ていますが、いくつかのIDキーの購入があり、それは個々の状況に依存します
パブリッククラスMqttPublishSample { パブリック静的無効メイン(文字列[] args){ 文字列のトピック=「MQTT例」。 文字列の内容=「MqttPublishSampleからのメッセージ」。 int型のQoS = 2; 文字列のブローカー= "TCP://mqtt.eclipse.org:1883"; 文字列のclientId = "JavaSample"。 MemoryPersistence永続=新しいMemoryPersistence(); {試みる MqttClient sampleclientの=新しいMqttClient(ブローカーのclientId、持続性)。 MqttConnectOptionsのconnOpts =新しいMqttConnectOptions(); connOpts.setCleanSession(真の); System.out.println( "ブローカーへの接続:" +ブローカー); System.out.printlnは(」 sampleClient.connect(connOpts)。 System.out.println( "接続"); System.out.println( "出版メッセージ:" +コンテンツ)。 MqttMessageメッセージ=新しいMqttMessage(content.getBytes())。 message.setQos(QOS)。 sampleClient.publish(トピック、メッセージ)。 System.out.println( "メッセージが公開しました"); sampleClient.disconnect(); System.out.println( "切断"); でSystem.exit(0); }キャッチ(MqttException ME){ するSystem.out.println( "MSG" + me.getMessage())。 System.out.println( "LOC" System.out.println(+ me.getCause() "原因は"); System.out.printlnは( "EXCEP" + Me)で、 me.printStackTrace(); } } }
ケアレスミスの週記録- >読み取りのRedisテイク・サーバのアドレスがオンし、[OK]をローカルに交換されていません