mqttの使用と紹介(qtベース)


#1、mqttはMQTTプロトコルが低帯域幅、信頼性の低いネットワークで動作するリモートセンサと制御装置の通信によって設計されたプロトコルを紹介し、それは以下の主要ないくつかの特性を持っている:(1)パブリケーション/サブスクリプションメッセージモードを使用して、1対多のメッセージパブリケーションを提供し、アプリケーション結合を解除する.(2)負荷コンテンツに対してマスクされたメッセージ伝送.(3)TCP/IPを用いてネットワーク接続を提供する.(4)3種類のメッセージ配信サービス品質:「最大1回」があり、メッセージ配信は下位TCP/IPネットワークに完全に依存する.メッセージが失われたり、重複したりします.このレベルは、近いうちに2回目の送信があるため、環境センサデータが1回の読み取り記録を失っても構わない場合に使用できます.この方式は主に普通のアプリのプッシュで、もしあなたのスマートデバイスがメッセージのプッシュ時にネットワークに接続されていなければ、プッシュは過去に受信されていないので、再びネットワークに接続しても受信できません.0「少なくとも1回」で、メッセージが到着したことを確認しますが、メッセージの重複が発生する可能性があります.1「1回のみ」で、メッセージが1回到着することを確認します.このレベルは、比較的厳しい課金システムで使用できます.課金システムでは、メッセージが重複または失われると、不正な結果が発生します.このような最高品質のメッセージ配信サービスは、インスタント通信クラスのAPPのプッシュにも使用でき、ユーザーが受信し、一度しか受信できないことを確保することができます.2(5)小型伝送,オーバーヘッドが小さい(固定長のヘッダは2バイト),プロトコル交換を最小化し,ネットワークトラフィックを低減した.そのため、紹介では「モノのインターネット分野では、センサとサーバの通信、情報の収集」に非常に適しており、組み込み機器の演算能力と帯域幅が相対的に弱いことを知るには、このようなプロトコルを使用してメッセージを伝えるのに最適です.2、mqtt名詞紹介MQTTプロトコルを実現するにはクライアントとサーバー側の通信が完了する必要があり、通信過程において、MQTTプロトコルには3つの身分がある:パブリッシャー(Publish)、エージェント(Broker)(サーバー)、サブスクライバ(Subscribe).このうち、メッセージのパブリッシャーとサブスクライバはクライアントであり、メッセージエージェントはサーバであり、メッセージのパブリッシャーは同時にサブスクライバであってもよい.MQTTが伝送するメッセージは、トピック(Topic)とロード(payload)の2つの部分に分けられる:(1)Topicは、メッセージのタイプと理解され、サブスクライバがサブスクライバ(Subscribe)を購読すると、そのトピックのメッセージ内容(payload)が受信される.(2)payloadは,メッセージの内容として理解でき,購読者が具体的に使用する内容を指す.今回の例のエージェント(Broker):emqxを使用して、emqxサーバクライアントをどのように構築するかを具体的に構築し、qtを使用して作成し、パブリッシャの購読者mqtt.fxが同時に使用できるようにします.
#3、qtバージョンmqttコード
client = new QMQTT::Client(QHostAddress("192.168.1.10"),1883);
 //             
client->setClientId("clientid");
client->setUsername("user");
client->setPassword("password");

//      
connect(client,SIGNAL(received(QMQTT::Message)),this,SLOT(doDataReceived(QMQTT::Message)));
void MainWindow::doDataReceived(Message message)
{
 QString mes = QString(message.id())+" "+QString(message.qos())+" "+message.topic()+" "+message.payload()+"
"; } client->subscribe("sys/sub/user");

mqtt.fxと組み合わせて使用