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.
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/NOTIFYeller 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.
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
- WebSockets med RESTful API:er
- Koppling till meddelandeköer
- Strömma databasändringar till klienter