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
In diesem Artikelbeispiel wird der spezifische Co...
Allgemeiner Handy-Stil: @media alle und (Ausricht...
■ Planung des Website-Themas Achten Sie darauf, da...
Das Erdbeben in Wenchuan am 12. Mai 2008 in Sichu...
Inhaltsverzeichnis 1. Gemeinsame Funktionen höher...
Xiaobai lernte Vue kennen, dann lernte er Webpack...
Umfeld Hostname IP-Adresse Aufschlag Jenkins 192....
1. Überlaufinhalt-Überlaufeinstellungen (festlegen...
Dieser Blog ist eine Arbeitsnotiz Umfeld: Nginx-V...
Nach dem Docker-Lauf ist der Status immer „Beende...
Die Beschreibung von echo im Linux-Hilfedokument ...
Über Win Docker-Desktop möchte ich mich mit der C...
Struktureller (Position) Pseudoklassenselektor (C...
Verwenden Sie den Befehl mysql, um eine Verbindun...
Die MyISAM- und InnoDB-Engines von MySQL verwende...