Programmering av WebSockets och system i realtid · Lektion

Datainstrumentpaneler i realtid

Implementera system som skickar liveuppdateringar till instrumentpaneler för omedelbara insikter och visualiseringar.

Lektion 3 av 411 steg

Datainstrumentpaneler i realtid är en gratis lektion i Programmering av WebSockets och system i realtid på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Programmering av WebSockets och system i realtid, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Programmering av WebSockets och system i realtid innehåller totalt 4 lektioner.

Realtidsinstrumentpaneler i fokus

Vad är realtidsinstrumentpaneler för data? Det är dynamiska gränssnitt som visar information som uppdateras kontinuerligt i realtid. Tänk på dem som alltid aktiva monitorer för dina data.

  • Omedelbara insikter: Se ändringar när de sker, inte flera timmar senare.
  • Snabba beslut: Reagera direkt på kritiska händelser eller trender.
  • Förbättrad övervakning: Håll koll på systemets hälsa, finansmarknader eller IoT-enheter.

WebSockets är perfekta för att skicka dessa uppdateringar direkt till webbläsaren.

Så fungerar realtidsinstrumentpaneler

Att bygga en realtidsinstrumentpanel innebär att några viktiga delar arbetar tillsammans:

  • Datakälla: Där dina rådata kommer ifrån (till exempel sensorer, API:er eller databaser).
  • Server: Bearbetar data och skickar sedan data till klienterna med hjälp av WebSockets.
  • Klient (instrumentpanel): Din webbläsare, som tar emot data och uppdaterar visningen.

Den här arkitekturen säkerställer att data flödar kontinuerligt från källa till skärm och ger omedelbara uppdateringar.

Förbereda ditt dataflöde

För en instrumentpanel kommer data ofta som en ström av händelser eller mätvärden. Varje del av datan bör vara koncis och meningsfull.

Ett vanligt och effektivt tillvägagångssätt är att skicka data som JSON-objekt. Det gör det enkelt för både servern att skapa datan och klienten att tolka den.

Exempel på datastruktur: { "metricName": "temperature", "value": 23.5, "timestamp": "..." }

Servern: Generera data

Vi börjar på serversidan. Vi använder Node.js för att simulera en ström av livedata, till exempel en sensoravläsning.

Det här kodexemplet genererar ett slumpmässigt värde för ”temperature” varje sekund och loggar det. Därefter integrerar vi detta med WebSockets för att skicka det till klienterna.

const intervalId = setInterval(() => {
  const temperature = 20 + Math.random() * 5; // Simulate temp
  const data = {
    metric: "temperature",
    value: parseFloat(temperature.toFixed(2)),
    timestamp: new Date().toISOString()
  };
  console.log("Generated data:", JSON.stringify(data));
  // This data will soon be sent over WebSocket
}, 1000);

console.log("Data generator started.");

// To stop after 10 seconds for demonstration:
// setTimeout(() => {
//   clearInterval(intervalId);
//   console.log("Data generator stopped.");
// }, 10000);

Servern: Skicka data till klienter

Nu gör vi om vår datagenerator till en WebSocket-server. Vi använder biblioteket ws för att upprätta anslutningar och skicka våra simulerade data.

När en klient ansluter börjar servern skicka uppdateringar. Kom ihåg att installera ws: npm install ws.

const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });

wss.on('connection', ws => {
  console.log('Client connected!');

  const interval = setInterval(() => {
    const temperature = 20 + Math.random() * 5;
    const data = {
      metric: "temperature",
      value: parseFloat(temperature.toFixed(2)),
      timestamp: new Date().toISOString()
    };
    ws.send(JSON.stringify(data));
  }, 1000);

  ws.on('close', () => {
    console.log('Client disconnected.');
    clearInterval(interval); // Stop sending data
  });

  ws.on('error', error => {
    console.error('WebSocket error:', error);
  });
});

console.log('WebSocket server started on port 8080');

Klient: Instrumentpanelens layout

På klientsidan behöver vi en enkel HTML-sida för att visa våra data. Vi skapar en grundläggande struktur och inkluderar JavaScript för att hantera WebSocket-anslutningen.

<div id="data-display"></div> är den plats där våra temperaturuppdateringar i realtid visas.

<!DOCTYPE html>
<html>
<head>
  <title>Realtime Dashboard</title>
  <style> body { font-family: sans-serif; } </style>
</head>
<body>
  <h1>Live Temperature Monitor</h1>
  <div id="data-display">Connecting...</div>

  <script>
    const ws = new WebSocket('ws://localhost:8080');

    ws.onopen = () => {
      console.log('Connected to WebSocket server!');
      document.getElementById('data-display').innerText = 'Waiting for data...';
    };

    ws.onerror = error => {
      console.error('WebSocket Error:', error);
      document.getElementById('data-display').innerText = 'Connection Error!';
    };

    ws.onclose = () => {
      console.log('Disconnected from WebSocket server.');
      document.getElementById('data-display').innerText = 'Disconnected.';
    };

    // Data handling logic will go here next!
  </script>
</body>
</html>

Klient: Hantera data i realtid

Nu lägger vi till den viktiga delen: att ta emot meddelanden från servern och uppdatera vår instrumentpanel.

Händelselyssnaren ws.onmessage aktiveras varje gång servern skickar nya data. Vi tolkar den inkommande JSON-datan och uppdaterar elementet data-display med den senaste temperaturen.

<!DOCTYPE html>
<html>
<head>
  <title>Realtime Dashboard</title>
  <style> body { font-family: sans-serif; } </style>
</head>
<body>
  <h1>Live Temperature Monitor</h1>
  <div id="data-display">Connecting...</div>

  <script>
    const ws = new WebSocket('ws://localhost:8080');

    ws.onopen = () => {
      console.log('Connected!');
      document.getElementById('data-display').innerText = 'Waiting for data...';
    };

    ws.onmessage = event => {
      const data = JSON.parse(event.data);
      if (data.metric === "temperature") {
        document.getElementById('data-display').innerHTML = 
          `Temperature: <b>${data.value}°C</b> 
          (at ${new Date(data.timestamp).toLocaleTimeString()})`;
      }
    };

    ws.onerror = error => {
      console.error('WebSocket Error:', error);
      document.getElementById('data-display').innerText = 'Connection Error!';
    };

    ws.onclose = () => {
      console.log('Disconnected.');
      document.getElementById('data-display').innerText = 'Disconnected.';
    };
  </script>
</body>
</html>

Mer än enkel text

Att visa råtext är användbart, men instrumentpaneler kommer verkligen till sin rätt med visualiseringar. För mer avancerade instrumentpaneler kan Ni integrera bibliotek för diagram, som Chart.js eller D3.js.

Dessa bibliotek kan ta emot inkommande data och uppdatera diagram, mätare eller andra visuella element i realtid. Grundprincipen är densamma: ta emot JSON-data och uppdatera sedan användargränssnittet.

Tips för robusthet och prestanda

Att bygga instrumentpaneler som är redo för produktion innebär mer än att bara skicka data. Beakta följande punkter för en stabil och säker upplevelse:

  • Felhantering: Vad händer om servern skickar felaktigt formaterade data?
  • Återanslutningslogik: Försök automatiskt att återansluta om WebSocket-anslutningen bryts.
  • Begränsning av dataflödet: Överbelasta inte klienten med för många uppdateringar per sekund.
  • Autentisering: Säkerställ att endast behöriga användare kan se känsliga data.

Kontroll av instrumentpanelens komponenter

En instrumentpanel för realtidsdata är beroende av flera viktiga komponenter för att fungera effektivt.

Sammanfattning: Instrumentpaneler i realtid

I den här lektionen utforskade vi hur man bygger instrumentpaneler för realtidsdata med hjälp av WebSockets.

  • Vi förstod det arkitektoniska flödet från datakälla till server och vidare till klientens användargränssnitt.
  • Vi såg hur man kan simulera data i realtid på servern och skicka dem via WebSockets.
  • På klientsidan lärde vi oss att ansluta, ta emot och visa dessa kontinuerliga uppdateringar.

WebSockets är ett kraftfullt verktyg för att ge data liv, tillhandahålla omedelbara insikter och möjliggöra snabbare beslut.

Gratis att börja

Lär dig Programmering av WebSockets och system i realtid med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
12
Lektioner
47

Vanliga frågor

Är lektionen ”Datainstrumentpaneler i realtid” gratis?

Ja – hela texten till ”Datainstrumentpaneler i realtid” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Programmering av WebSockets och system i realtid, kan Ni uppgradera till CoddyKit PRO. Kursen i Programmering av WebSockets och system i realtid innehåller totalt 4 lektioner.

Vad lär jag mig i ”Datainstrumentpaneler i realtid”?

Implementera system som skickar liveuppdateringar till instrumentpaneler för omedelbara insikter och visualiseringar. Ni övar på Programmering av WebSockets och system i realtid med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Programmering av WebSockets och system i realtid?

Du behöver inga förkunskaper. Utbildningen i Programmering av WebSockets och system i realtid på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Datainstrumentpaneler i realtid”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Programmering av WebSockets och system i realtid-lektionen?

Ja. Varje Programmering av WebSockets och system i realtid-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Samarbetsredigerare och digitala whiteboards
  2. Livechatt och spelservrar
  3. Datainstrumentpaneler i realtid
  4. Bygg ett system för spårning av positioner i realtid
← Tillbaka till Programmering av WebSockets och system i realtid