Vorwort Verwenden Sie webSocket in Vue, um ein einfaches Echtzeit-Updatemodul für das Wetter zu erstellen. Informationen zu WebSocket-Operationen und Beispielen: 1.WebSocket-Verbindung 2. Daten empfangen 3. Wiederverbindungsmechanismus webSocket 1. Über webSocketWebSocket ist ein von HTML5 bereitgestelltes Protokoll, das Vollduplex-Kommunikation über eine einzelne TCP-Verbindung ermöglicht. Der Browser sendet über JavaScript eine Anforderung an den Server, eine WebSocket-Verbindung herzustellen. Nachdem die Verbindung hergestellt wurde, können Client und Server über die TCP-Verbindung direkt Daten austauschen. Nachdem Sie die WebSocket-Verbindung hergestellt haben, können Sie über die Methode send() Daten an den Server senden und die vom Server zurückgegebenen Daten über das Ereignis onmessage empfangen. var Socket = neuer webSocket(URL, [Protokoll]); Protokoll ist optional und gibt akzeptable Unterprotokolle an 2. Unterschiede zum AJAX WheelHeutzutage verwenden viele Websites Ajax-Polling, um Push-Technologie zu implementieren. Beim Polling sendet der Browser in einem bestimmten Zeitintervall (z. B. jede Sekunde) eine HTTP-Anfrage an den Server und der Server gibt dann die neuesten Daten an den Browser des Clients zurück. Dieses traditionelle Modell hat einen offensichtlichen Nachteil: Der Browser muss kontinuierlich Anfragen an den Server senden. Die HTTP-Anfrage kann jedoch einen langen Header enthalten, von dem die wirklich gültigen Daten nur einen kleinen Teil ausmachen. Dadurch wird offensichtlich viel Bandbreite und andere Ressourcen verschwendet. Das durch HTML5 definierte WebSocket-Protokoll kann Serverressourcen und Bandbreite besser sparen und mehr Echtzeitkommunikation ermöglichen. 3.webSocket-Ereignisse 4. Ein einfaches BeispielLassen Sie uns mit der obigen kurzen Einführung eine WebSocket-Instanz erstellen und ausprobieren: Funktion webSocketTest() { if ("webSocket" im Fenster){ alert("Ihr Browser unterstützt webSocket!"); // Öffne einen WebSocket var ws = neuer webSocket("ws://localhost:8080/test"); ws.onopen = Funktion() { // WebSocket ist verbunden, verwenden Sie die Methode send(), um Daten zu senden ws.send("send data"); console.log("Daten werden gesendet..."); }; ws.onmessage = Funktion (evt) { // Empfangene Daten var data = evt.data; console.log("Daten empfangen..."); }; ws.onerror = Funktion () { // Verbindungsfehler console.log('Verbindungsfehler...'); } ws.onclose = Funktion() { // Schließen Sie den WebSocket console.log("Verbindung geschlossen..."); }; } anders { // Der Browser unterstützt kein WebSocket alert("Ihr Browser unterstützt webSocket nicht!"); } } Wie Sie sehen, ist die Verwendung von webSocket eigentlich sehr einfach:
Die gleiche Methode wird in Vue verwendet Wetter-UpdateHier demonstrieren wir die Implementierung des zuvor erwähnten Echtzeit-Wetteraktualisierungseffekts. Das Projektframework ist vue\element. Basiscode <!-- Für das Layout verwendetes Element, einfach direkt verwenden --> <el-popover Platzierung="unten" :title="wetter.title" Auslöser="schweben" :inhalt="wetter.cont"> <div slot="Referenz" class="Wetter"> <img :src="wetter.url" alt=""> </div> </el-popover> Standard exportieren { Daten() { zurückkehren { Wetter: Stadtname: '', Titel: '-- Stadt / --℃', Fortsetzung: '--', Wettercode: '0', URL: '' } } }, Methoden: { // Das Wetter abrufen async getTheWeather() { // Fordern Sie zunächst die aktuellen Wetterbedingungen über die Schnittstelle an let res = await this.$Http.getWeather({}); wenn(res.code === 200) { // Hier werden die von der Schnittstelle erhaltenen Wetterdaten in „Wetter in Daten“ eingefügt … //Öffnen Sie dann den WebSocket, um dies in Echtzeit zu empfangen. this.connectWebSocket(); } }, //WebSocket verbindeWebSocket () { lass _this = dies; if ("WebSocket" im Fenster) { console.log("Ihr Browser unterstützt WebSocket!"); // Öffne einen WebSocket let url ='xxxxxxxxxxx'; // Liefert Ihnen die Adresse für den Daten-Push let ws = new webSocket(`ws://${url}`); // Verbindung erfolgreich ws.onopen = function () { // Web Socket ist verbunden, verwenden Sie die Methode send(), um Daten zu senden ws.send("Dies sind die gesendeten Testdaten"); console.log('Verbindung erfolgreich'); }; // Daten zur Verarbeitung empfangen ws.onmessage = function (evt) { Lassen Sie empfangene_Nachricht = evt.data; // Hier werden die Wetterdaten in Daten eingefügt, anschließend wird das Wetter aktualisiert … }; // Verbindungsfehler ws.onerror = function () { console.log('Verbindungsfehler...'); } // Verbindung geschlossen ws.onclose = function () { // Schließen Sie den WebSocket console.log("Verbindung geschlossen..."); } } anders { // Der Browser unterstützt WebSocket nicht console.log("Ihr Browser unterstützt WebSocket nicht!"); } }, }, montiert() { // Lokales Wetter abrufen this.getTheWeather(); } } Bildmaterial Den Wettercodewert besprichst Du am besten mit dem Backend für Wetterbildinformationen, damit Du den Wert direkt austauschen kannst. this.weather.url = erfordert(`@/assets/img/weather/${weatherInfo.weatherCode}@2x.png`); WiederverbindungsmechanismusSchließlich wird ein Wiederverbindungsmechanismus eingeführt. Einfacher Wiederverbindungsmechanismus, verwenden Sie einfach setTimeout. Wenn der Verbindungsfehler auftritt/die Verbindung geschlossen wird, verwenden Sie einen Timer, um die Methode connectWebSocket erneut auszuführen und die Verbindung wiederherzustellen. Bei diesem Vorgang können jedoch zahlreiche Probleme auftreten, daher wurde ein eleganteres Plug-In zum Wiederherstellen der Verbindung gefunden: ReconnectingWebSocket. ReconnectingWebSocket ist eigentlich eine gekapselte webSocketTest-Instanz mit einem Wiederverbindungsmechanismus. Wenn die Verbindung getrennt wird, wird auf benutzerfreundliche Weise versucht, die Verbindung wiederherzustellen, bis sie wiederhergestellt ist. Auch die Verwendung ist relativ einfach, einfach importieren und erstellen: // Importieren Sie ReconnectingWebSocket von „@/util/ReconnectingWebSocket“; Standard exportieren { Daten() { zurückkehren { ... } }, Methoden: { ... verbindeWebSocket() { lass _this = dies; if ("WebSocket" im Fenster) { console.log("Ihr Browser unterstützt WebSocket!"); // Öffne einen WebSocket let url ='xxxxxxxxxxx'; // Gib die Adresse für den Daten-Push an - let ws = new webSocket(`ws://${url}`); // Wegwerfen + let ws = new ReconnectingWebSocket(`ws://${url}`); // Ändere dies // Verbindung erfolgreich ws.onopen = function () { // Web Socket ist verbunden, verwenden Sie die Methode send(), um Daten zu senden ws.send("Dies sind die gesendeten Testdaten"); console.log('Verbindung erfolgreich'); }; // Daten zur Verarbeitung empfangen ws.onmessage = function (evt) { ... }; // Verbindungsfehler ws.onerror = function () { console.log('Verbindungsfehler...'); } // Verbindung geschlossen ws.onclose = function () { // Schließen Sie den WebSocket console.log("Verbindung geschlossen..."); } } anders { // Der Browser unterstützt WebSocket nicht console.log("Ihr Browser unterstützt WebSocket nicht!"); } } } } ReconnectingWebSocket ist eine einzelne JS-Datei, die online durchsucht werden kann. Dies ist das Ende dieses Artikels über die Verwendung von webSocket zum Aktualisieren des Echtzeitwetters in Vue. Weitere relevante Inhalte zum Aktualisieren des Echtzeitwetters in Vue webSocket 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:
|
>>: Implementierungsprozess des Nginx-Hochverfügbarkeitsclusters
Bei einigen Systemen mit großen Datenmengen beste...
Ein neues Fenster wird geöffnet. Vorteile: Wenn d...
Inhaltsverzeichnis Gängige Komprimierungsformate:...
Hintergrundbeschreibung: Auf einem vorhandenen La...
1. Laden Sie das ElasticSearch 6.4.1-Installation...
Vorwort 1. Benchmarking ist eine Art Leistungstes...
Grundlegende Verwendung <!DOCTYPE html> <...
Als Nächstes werde ich zwei Tabellen erstellen un...
Inhaltsverzeichnis Fazit zuerst Frage Lösung Verw...
1. Rendern 2. Quellcode HTML < Textkörper >...
Vorwort Lassen Sie mich zunächst Keepalived vorst...
Inhaltsverzeichnis Hintergrund LIMIT-Optimierung ...
Vorwort Es besteht ein Missverständnis bezüglich ...
Inhaltsverzeichnis 1. Einleitung 2. Vorbereitung ...
Inhaltsverzeichnis 1. Workflow ausführen 2. Grund...