MQTT プロトコルMQTT (Message Queuing Telemetry Transport) は、IBM が開発したインスタント メッセージング プロトコルであり、モノのインターネットの重要な部分になる可能性があります。このプロトコルはすべてのプラットフォームをサポートしており、インターネットに接続されたほぼすべてのオブジェクトを外部に接続できます。センサーやアクチュエータの通信プロトコルとして使用されます(Twitter 経由で家をインターネットに接続するなど)。 MQTT は、最小限のコードと帯域幅でリモート デバイスに接続できる、軽量のブローカー ベースのパブリッシュ/サブスクライブ メッセージング プロトコルです。たとえば、衛星やプロキシ接続、ダイヤルアップやヘルスケア プロバイダー接続、一部の自動化デバイスや小型デバイスなどです。また、サイズが小さく、省電力で、プロトコル オーバーヘッドが低く、1 つまたは複数の受信者に情報を効率的に送信できるため、モバイル アプリケーション デバイスにも適しています。 VueはMQTTサーバーを使用して即時通信を実現しますほとんどのプロジェクトでは、フロントエンドとバックエンドのやり取りは、フロントエンドがバックエンド インターフェイスを要求し、データを取得した後に処理するだけです。以前、私が取り組んでいたプロジェクトでは、MQTT を使用する必要がありました。使用してみると、魔法のようでした。データをリアルタイムで取得するには、サブスクライブするだけで済みます。さっそく、手順を説明します。 1. vueプロジェクトにmqtt.jsをインストールする npm インストール mqtt --save 2. プロジェクトのmain.jsまたは必要なvueページで参照します。 'mqtt' から mqtt をインポートします 3. 後で使用するために、vueページのデータにクライアントオブジェクトを定義します。 クライアント: {} さて、次のステップが重要なポイントです。まず、MQTT に接続する必要があります。MQTT に接続するためのメソッドにはコールバック関数があります。次に、接続が成功した後のコールバックにサブスクリプション メソッドを記述して、エラーが発生しないようにします。これがコードです。 4. MQTTに接続してサブスクライブする //サーバーに接続する connect() { オプション = { ユーザー名: "xxx", パスワード: "xxxx", cleanSession: false、 キープアライブ:60, クライアントID: 'mqttjs_' + Math.random().toString(16).substr(2, 8), 接続タイムアウト: 4000 } this.client = mqtt.connect('ws://192.168.xxx.xx:8083/mqtt',オプション); this.client.on("接続", (e)=>{ console.log("サーバーに正常に接続しました:",e); // 'top/#'、'three/#'、'#' という名前の 3 つのトピックをサブスクライブします。this.client.subscribe(['top/#', 'three/#', '#'], { qos: 1 }, (err)=> { もしエラーが起きたら console.log("サブスクリプションが成功しました"); // トピック「pubtop」に「hello, this is a nice day!」という内容のメッセージを公開します。this.publish("pubtop", 'hello, this is a nice day!') } それ以外 { console.log('メッセージのサブスクリプションに失敗しました!') } }); }); //再接続 this.reconnect() //接続が切断されましたか? this.mqttError() //情報をリッスンする this.getMessage() } 5. メッセージ公開方法 //メッセージを公開 @topic subject @message コンテンツを公開 publish(topic,message) { クライアントが接続されている場合 console.log('クライアントが接続されていません') 戻る } this.client.publish(トピック、メッセージ、{qos: 1}、(err) => { もしエラーが起きたら console.log('件名は' + トピック + "正常に公開されました") } }) } 6. 上記の3つのトピックを聞いて情報を受け取る //受信したメッセージをリッスンする getMessage() { this.client.on("メッセージ", (トピック, メッセージ) => { if(メッセージ) { console.log('受信元', topic, '情報', message.toString()) 定数 res = JSON.parse(message.toString()) //コンソール.log(res, 'res') スイッチ(トピック) { ケース 'top/#' : this.msg = レス 壊す; ケース 'three/#' : this.msg = レス 壊す; ケース 'three/#' : this.msg = レス 壊す; デフォルト: 戻る this.msg = レス } this.msg = メッセージ } }); }, 7. サーバー接続が失敗していないか確認する //サーバー接続が失敗したかどうかを監視 mqttError() { this.client.on('エラー',(エラー) => { console.log('接続に失敗しました:',error) this.client.end() }) }, 8. 購読解除 // 購読解除 unsubscribe() { this.client.unsubscribe(this.mtopic, (エラー)=> { console.log('トピックは' + this.mtopic + '購読解除に成功しました', error) }) }, 9. 切断する //切断 unconnect() { this.client.end() this.client = null console.log('サーバーが切断されました!') }, 10. サーバーの再接続を待機する //サーバーの再接続を待機する reconnect() { this.client.on('再接続', (エラー) => { console.log('再接続中:', エラー) }); }, 要約するこれで、vue で MQTT サーバーを使用してインスタント メッセージングを実現する方法に関するこの記事は終了です。vue で MQTT インスタント メッセージングを使用する方法に関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: MycliはMySQLコマンドライン愛好家にとって必須のツールです
目次1. プラグイン式を使用する2. プラグイン式でv-cloakを使用してちらつきの問題を解決する...
システムの問題、アプリケーションの速度低下、または原因不明の問題をトラブルシューティングする場合、最...
CSSスタイルの分類1. 内部スタイル ---- インラインスタイルスタイルタグの使用 <ス...
背景今日、CodePen を閲覧していたところ、非常に興味深い効果を見つけました。 CodePen ...
この記事は、MySQL 8.0.12解凍版のインストールグラフィックチュートリアルを記録しています。...
1. ダウンロード1. MySQL公式サイトのダウンロードアドレス: https://downloa...
通常、クリック イベントは、メッセージ リマインダーのさまざまな状況に分割されます。これらが処理され...
1) プロセス 2) FSImageと編集NodeNode は HDFS の頭脳です。ファイルシステ...
目次WebSocketを使用する理由ソケット.ioオープンソースプロジェクト効果プレビューアプリイン...
JavaScript は多くの素晴らしい機能を備えています。この記事では、作業効率の向上とコードのデ...
1. イベントが有効になっているかどうかを確認する'%sche%' のような変数を表...
この記事では主に、Vue + SpringBoot でページ分割されたリストデータを実装する方法を紹...
React 16の内容です。最新技術ではありませんが、ドキュメントで調べるまであまり話題に上がらなか...
この記事の例では、テーブルを動的に生成したり行を削除したりするためのJavaScriptの具体的なコ...
1. コマンドの紹介nl (行数) は指定されたファイルに行番号を追加し、標準出力に書き込みます。フ...