Programmering av WebSockets och system i realtid · Lektion

Strömma databasändringar till klienter

Skicka liveuppdateringar från databasen till anslutna klienter genom att lyssna på ändringshändelser och vidarebefordra dem över WebSockets i realtid.

Lektion 3 av 313 steg

Strömma databasändringar till klienter är en gratis lektion i Programmering av WebSockets och system i realtid på CoddyKit. Detta är lektion 3 av 3. 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 3 lektioner.

Från polling till push

I stället för att klienterna upprepade gånger frågar databasen efter nya data kan ni pusha ändringar i samma ögonblick som de sker. Backend lyssnar på databasen och vidarebefordrar uppdateringar via WebSockets.

Change Data Capture

Change Data Capture (CDC) är ett mönster där infogningar, uppdateringar och borttagningar observeras som en ström av händelser i stället för att skillnader hämtas genom frågor.

Mekanismer för databasnotifieringar

Många databaser genererar händelser vid ändringar:

  • PostgreSQL: LISTEN / NOTIFY eller logisk replikering
  • MongoDB: ändringsströmmar
  • Firebase/Supabase: inbyggd realtid

Postgres LISTEN/NOTIFY

Postgres kan skicka en avisering på en kanal som backend-API:t prenumererar på.

await client.query('LISTEN row_changed');

Utlösa aviseringar

En trigger kör pg_notify när data ändras och skickar med en nyttolast som beskriver ändringen.

CREATE TRIGGER notify_change
AFTER INSERT ON orders
FOR EACH ROW EXECUTE FUNCTION notify_row();

Ta emot händelsen

Er Node-backend hanterar aviseringen och vidarebefordrar den till berörda WebSocket-klienter.

client.on('notification', (msg) => {
  broadcast(JSON.parse(msg.payload));
});

Filtrera vilka som får uppdateringar

Alla klienter är inte intresserade av alla ändringar. Dirigera uppdateringar efter ämne, användare eller rum så att klienterna bara tar emot relevanta data.

function broadcast(change) {
  toRoom('orders:' + change.userId, change);
}

Skicka deltamängder, inte ögonblicksbilder

Överför bara det som ändrades (en deltamängd) i stället för hela datamängden. Klienterna tillämpar deltamängden på sin lokala kopia, vilket sparar bandbredd.

ws.send(JSON.stringify({ op: 'update', id: 42, fields: { status: 'shipped' } }));

Initialt tillstånd plus ström

Ett vanligt mönster är att skicka en fullständig ögonblicksbild vid anslutning och sedan strömma inkrementella ändringar. Klienten förblir synkroniserad utan att behöva hämta allt igen.

Hantera återanslutningar

Efter en återanslutning kan en klient ha missat ändringar. Skicka en ny ögonblicksbild eller en markör för ändringar sedan den senast kända versionen, så att synkroniseringen kan ske säkert.

Bästa praxis

Strömma ändringar på ett tillförlitligt sätt:

  • Använd CDC eller LISTEN/NOTIFY i stället för polling
  • Filtrera uppdateringar per klient
  • Skicka deltamängder, inte fullständiga ögonblicksbilder
  • Synkronisera om vid återanslutning för att fylla luckor

Snabbkontroll

Testa era kunskaper om strömning av ändringar.

Sammanfattning

Ni strömmade ändringar i databasen i realtid till klienterna:

  • Använd CDC / LISTEN-NOTIFY i stället för polling
  • Vidarebefordra ändringshändelser via WebSockets
  • Filtrera per klient och skicka deltamängder
  • Skicka en ögonblicksbild vid anslutning och synkronisera om vid återanslutning

Nu förblir era data aktuella hela vägen.

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 ”Strömma databasändringar till klienter” gratis?

Ja – hela texten till ”Strömma databasändringar till klienter” 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 3 lektioner.

Vad lär jag mig i ”Strömma databasändringar till klienter”?

Skicka liveuppdateringar från databasen till anslutna klienter genom att lyssna på ändringshändelser och vidarebefordra dem över WebSockets i realtid. 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 3.

Hur lång tid tar lektionen ”Strömma databasändringar till klienter”?

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. WebSockets med RESTful API:er
  2. Koppling till meddelandeköer
  3. Strömma databasändringar till klienter
← Tillbaka till Programmering av WebSockets och system i realtid