Echtzeitaktualisierung einer langen Verbindung auf der Vue+WebSocket-Seite

Echtzeitaktualisierung einer langen Verbindung auf der Vue+WebSocket-Seite

In letzter Zeit muss das Vue-Projekt die Daten in Echtzeit aktualisieren. Das Liniendiagramm wird jede Sekunde neu gezeichnet und die Daten werden alle 0,5 Sekunden aktualisiert. Einfach ausgedrückt handelt es sich um eine Aktualisierung in Echtzeit. Da die Datenmenge groß ist, wird geschätzt, dass die Seite hängen bleibt, wenn sie mithilfe eines Timers eine Weile verweilt. . .

Nach einer Diskussion mit dem Backend-Personal entschieden wir uns, den neu hinzugefügten WebSocket von h5 zu verwenden, um eine Echtzeitdatenanzeige zu realisieren und den Prozess und die aufgetretenen Probleme aufzuzeichnen.

Hinweis: Die lange Verbindung zum Aktualisieren der Seite wird geschlossen. Tatsächlich besteht der Zweck des Herstellens einer langen Verbindung beim Aufrufen der aktuellen Seite darin, die Seite ohne F5 zu aktualisieren. Alle Daten werden automatisch in Echtzeit aktualisiert. Wenn Sie die Seite immer noch mit F5 hin und her aktualisieren, ist dies sinnlos. . .

PS: Wenn Sie das wirklich brauchen, scheint es eine Möglichkeit zu geben, die Seite zu aktualisieren und die Verbindung aufrechtzuerhalten. Bitte suchen Sie auf Baidu. . . .

<Vorlage>
    <div>
    </div>
</Vorlage>

<Skript>
    Standard exportieren {
        Daten() {
            zurückkehren {
                Websock: null,
            }
        },
    erstellt(){
           //Öffnen Sie eine lange Verbindung, wenn die Seite gerade aufgerufen wird this.initWebSocket()
       },
    zerstört: Funktion() {
    //Schließen Sie die lange Verbindung, wenn die Seite zerstört wird. this.websocketclose();
    },
    Methoden: { 
      initWebSocket(){ //Weosocket initialisieren 
 
              const wsuri = process.env.WS_API + "/websocket/threadsocket"; //ws-Adresse this.websock = neuer WebSocket(wsuri); 
        dies.websocket.onopen = dies.websocketonopen;

        dies.websocket.onerror = dies.websocketonerror;

        dies.websock.onmessage = dies.websocketonmessage; 
        dies.websock.onclose = dies.websocketclose;
    }, 

      websocketonopen() {
        console.log("WebSocket-Verbindung erfolgreich");
      },
      websocketonerror(e) { //Fehler console.log("WebSocket-Verbindungsfehler");
      },
      websocketonmessage(e){ //Datenempfang const redata = JSON.parse(e.data);
         //Hinweis: Bei langen Verbindungen übertragen wir ein Datenelement pro Sekunde direkt in den Hintergrund. 
          //Wenn Sie jedoch auf eine Liste klicken, wird eine Kennung an das Backend gesendet und das Backend gibt basierend auf dieser Kennung die entsprechenden Daten zurück.
      // Zu diesem Zeitpunkt können Daten nur von einem Ausgang gesendet werden, sodass im Hintergrund ein Schlüssel hinzugefügt wird. Wenn der Schlüssel beispielsweise 1 ist, werden die Daten alle 1 Sekunde gepusht, und wenn er 2 ist, werden die Daten nach dem Senden der Markierung gepusht, zur Unterscheidung console.log(redata.value); 
      }, 

      websocketsend(agentData){//Daten werden gesendet this.websock.send(agentData); 
      }, 

     websocketclose(e){ //Schließen console.log("Verbindung geschlossen (" + e.code + ")"); 
     },
   }, 
  }
 </Skript>

Dies ist das Ende dieses Artikels über die Implementierung der Echtzeitaktualisierung einer langen Verbindung der Vue+WebSocket-Seite. Weitere relevante Inhalte zur Echtzeitaktualisierung einer langen Verbindung zu Vue+WebSocket finden Sie in den vorherigen Artikeln von 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:
  • So verwenden Sie webSocket zum Aktualisieren des Echtzeitwetters in Vue
  • Eine kurze Diskussion über die Fallstricke der Echtzeitkommunikation mit Vue WebSocket NodeJS
  • Vue implementiert WebSocket zum Senden und Empfangen von Nachrichten in Echtzeit
  • Websocket+Vuex implementiert eine Echtzeit-Chat-Software

<<:  So fügen Sie Spalten in einer MySQL-Datenbank hinzu, löschen und ändern sie

>>:  Implementierung der CentOS8.0-Netzwerkkonfiguration

Artikel empfehlen

Prinzip der MySQL-Paging-Analyse und Effizienzverbesserung

Prinzip der MySQL-Paging-Analyse und Effizienzver...

So verwenden Sie vs2019 für die Linux-Remote-Entwicklung

Normalerweise gibt es bei der Entwicklung von Lin...

Detaillierte Erläuterung der CSS BEM-Schreibstandards

BEM ist ein komponentenbasierter Ansatz zur Weben...

Mysql-Datumsformatierung und komplexe Datumsbereichsabfrage

Inhaltsverzeichnis Vorwort Anwendungsszenarios fü...

Beispielanalyse des Prinzips und der Lösung des MySQL-Gleitreihenfolgeproblems

Dieser Artikel erläutert anhand von Beispielen da...

Detaillierte Erklärung der berechneten Eigenschaften von Vue

1. Was ist ein berechnetes Attribut? Einfach ausg...

Warum MySQL Repeatable Read als Standardisolationsebene wählt

Inhaltsverzeichnis Oracle-Isolationsebenen MySQL-...

JS implementiert Karussell mit mehreren Tabs

Karussell-Animationen können das Erscheinungsbild...

Node verwendet das Modul async_hooks zur Anforderungsverfolgung

Das Modul async_hooks ist eine experimentelle API...

Docker+Gitlab+Jenkins erstellt automatisierte Bereitstellung von Grund auf

Inhaltsverzeichnis Vorwort: 1. Docker installiere...

Detaillierte Erklärung der Lösung für den 404-Fehler von Tomcat

Das 404-Problem tritt im Tomcat-Test auf. Die Pro...