MQTT-ProtokollMQTT (Message Queuing Telemetry Transport) ist ein von IBM entwickeltes Instant-Messaging-Protokoll und hat das Potenzial, ein wichtiger Bestandteil des Internets der Dinge zu werden. Das Protokoll unterstützt alle Plattformen und kann nahezu alle mit dem Internet verbundenen Objekte mit der Außenwelt verbinden. Es wird als Kommunikationsprotokoll für Sensoren und Aktoren verwendet (z. B. um Häuser über Twitter mit dem Internet zu verbinden). MQTT ist ein leichtes, brokerbasiertes Publish/Subscribe-Messaging-Protokoll, das mit minimalem Code und minimaler Bandbreite eine Verbindung zu Remote-Geräten herstellen kann. Beispielsweise über Satelliten- und Proxy-Verbindungen, über DFÜ- und Gesundheitsdienstleisterverbindungen und in einigen automatisierten oder kleinen Geräten. Aufgrund seiner geringen Größe, Energieeinsparung, des geringen Protokoll-Overheads und der Fähigkeit, Informationen effizient an einen oder mehrere Empfänger zu übertragen, eignet es sich auch für mobile Anwendungsgeräte. Vue verwendet einen MQTT-Server, um eine sofortige Kommunikation zu realisierenIn den meisten Projekten besteht die Interaktion zwischen Front-End und Back-End lediglich darin, dass das Front-End die Back-End-Schnittstelle anfordert und die Daten dann verarbeitet, nachdem sie empfangen wurden. Vor einiger Zeit erforderte ein Projekt, an dem ich arbeitete, die Verwendung von mqtt. Nachdem ich es verwendet hatte, fand ich es magisch. Ich musste mich nur anmelden, um Daten in Echtzeit zu erhalten. Ohne weitere Umschweife werde ich Ihnen die Schritte erläutern! 1. Installieren Sie mqtt.js im Vue-Projekt npm installiere mqtt --save 2. Verweisen Sie darauf in der main.js des Projekts oder auf der Vue-Seite, wo es benötigt wird importiere mqtt von „mqtt“ 3. Definieren Sie ein Client-Objekt in den Daten der Vue-Seite zur späteren Verwendung Kunde: {} Ok, der nächste Schritt ist der entscheidende Punkt. Zuerst müssen wir eine Verbindung zu MQTT herstellen. Die Methode zum Herstellen einer Verbindung zu MQTT verfügt über eine Rückruffunktion. Als Nächstes werde ich die Abonnementmethode in den Rückruf schreiben, nachdem die Verbindung erfolgreich hergestellt wurde, um sicherzustellen, dass keine Fehler auftreten. Hier ist der Code! 4. Mit MQTT verbinden und abonnieren //Mit dem Server verbinden connect() { let Optionen = { Benutzername: "xxx", Passwort: "xxxx", cleanSession : falsch, keepAlive:60, clientId: 'mqttjs_' + Math.random().toString(16).substr(2, 8), VerbindungsTimeout: 4000 } this.client = mqtt.connect('ws://192.168.xxx.xx:8083/mqtt',Optionen); this.client.on("verbinden", (e)=>{ console.log("Erfolgreich mit dem Server verbunden:",e); //Abonnieren Sie drei Themen mit den Namen „top/#“, „three/#“ und „#“ this.client.subscribe([„top/#“, „three/#“, „#“], { qos: 1 }, (err)=> { wenn (!err) { console.log("Abonnement erfolgreich"); //Veröffentliche eine Nachricht mit dem Inhalt ‚Hallo, das ist ein schöner Tag!‘ zum Thema „pubtop“ this.publish(„pubtop“, ‚Hallo, das ist ein schöner Tag!‘) } anders { console.log('Nachrichtenabonnement fehlgeschlagen!') } }); }); //Verbinden Sie dies erneut.reconnect() //Wurde die Verbindung getrennt? this.mqttError() //Auf Informationen warten this.getMessage() } 5. Methode zum Veröffentlichen von Nachrichten //Nachricht veröffentlichen @topic Betreff @message Inhalt veröffentlichen publish(topic,message) { wenn (!dieser.Client.verbunden) { console.log('Client nicht verbunden') zurückkehren } this.client.publish(Thema,Nachricht,{qos: 1},(err) => { wenn(!err) { console.log('Der Betreff ist' + topic + "Erfolgreich veröffentlicht") } }) } 6. Hören Sie zu und erhalten Sie Informationen zu den drei oben abonnierten Themen //Auf empfangene Nachrichten warten getMessage() { this.client.on("Nachricht", (Thema, Nachricht) => { wenn(Nachricht) { console.log('Empfangen von', Thema, 'Information', Nachricht.toString()) const res = JSON.parse(message.toString()) //Konsole.log(res, 'res') Schalter(Thema) { Fall 'oben/#': diese.msg = res brechen; Fall 'drei/#': diese.msg = res brechen; Fall 'drei/#': diese.msg = res brechen; Standard: zurückkehren diese.msg = res } this.msg = Nachricht } }); }, 7. Überprüfen Sie, ob die Serververbindung fehlschlägt //Überwachen, ob die Serververbindung fehlschlägt mqttError() { this.client.on('Fehler',(Fehler) => { console.log('Verbindung fehlgeschlagen:',Fehler) dieser.client.ende() }) }, 8. Abmeldung //Abmelden unsubscribe() { this.client.unsubscribe(this.mtopic, (Fehler)=> { console.log('Thema ist' + this.mtopic + 'Abmeldung erfolgreich', Fehler) }) }, 9. Trennen Sie die Verbindung //trennen unconnect() { dieser.client.ende() this.client = null console.log('Die Verbindung zum Server wurde getrennt!') }, 10. Warten Sie auf die erneute Verbindung des Servers //Auf erneute Serververbindung warten reconnect() { this.client.on('Wiederverbinden', (Fehler) => { console.log('Verbindung wird wiederhergestellt:', Fehler) }); }, ZusammenfassenDies ist das Ende dieses Artikels über die Verwendung des MQTT-Servers in Vue zur Realisierung von Instant Messaging. Weitere relevante Inhalte zur Verwendung des MQTT-Instant Messaging in Vue finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Detailliertes Tutorial zur Installation von Nginx auf CentOS8 (Bild und Text)
>>: Mycli ist ein unverzichtbares Tool für MySQL-Befehlszeilen-Enthusiasten
Kurz gesagt, heute sprechen wir über die Verwendu...
0. Neuer Betrieb: mkdir abc #Erstelle einen neuen...
Inhaltsverzeichnis 1. Schematische Darstellung de...
Inhaltsverzeichnis 1. Schreiben Sie Webshell in d...
Dieser Artikel beschreibt, wie die Koexistenz von...
In diesem Artikel wird der spezifische Code von j...
Guter HTML-Code ist die Grundlage einer schönen W...
Vorwort Normale Benutzer definieren geplante Cron...
Nehmen wir Windows als Beispiel. Bei Linux ist es...
Inhaltsverzeichnis 1. Fehlertoleranz bei der Joba...
Ziehen Sie zuerst das Image (oder erstellen Sie e...
Problembeschreibung Nach der Installation von Qt5...
Binlog ist eine binäre Protokolldatei, die alle M...
Ich wollte wissen, wie ich mit einem Domänennamen...