Strømming av databaseendringer til klienter
Send live-oppdateringer fra databasen til tilkoblede klienter ved å lytte etter endringshendelser og videresende dem over WebSockets i sanntid.
Strømming av databaseendringer til klienter er en gratis leksjon i Programmering av WebSockets og sanntidssystemer på CoddyKit. Dette er leksjon 3 av 3. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Programmering av WebSockets og sanntidssystemer, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Programmering av WebSockets og sanntidssystemer inneholder totalt 3 leksjoner.
Fra polling til pushing
I stedet for at klientene gjentatte ganger spør databasen etter nye data, kan De pushe endringer idet de skjer. Backend-systemet lytter til databasen og videresender oppdateringer over WebSockets.
Endringsdatafangst
Change Data Capture (CDC) er et mønster der innsettinger, oppdateringer og slettinger observeres som en strøm av hendelser, i stedet for at det spørres etter forskjeller.
Mekanismer for databasevarsling
Mange databaser sender ut endringshendelser:
- PostgreSQL:
LISTEN/NOTIFYeller logisk replikering - MongoDB: endringsstrømmer
- Firebase/Supabase: innebygd sanntid
Postgres LISTEN/NOTIFY
Postgres kan sende et varsel på en kanal backend-systemet abonnerer på.
await client.query('LISTEN row_changed');Utløse varsler
En trigger utløser pg_notify ved dataendringer og sender med en nyttelast som beskriver endringen.
CREATE TRIGGER notify_change
AFTER INSERT ON orders
FOR EACH ROW EXECUTE FUNCTION notify_row();Motta hendelsen
Node-backend-systemet håndterer varslingen og videresender den til relevante WebSocket-klienter.
client.on('notification', (msg) => {
broadcast(JSON.parse(msg.payload));
});Filtrere hvem som får oppdateringer
Ikke alle klienter er interessert i alle endringer. Ruter oppdateringer etter emne, bruker eller rom, slik at klientene bare mottar relevante data.
function broadcast(change) {
toRoom('orders:' + change.userId, change);
}Sende deltaer, ikke øyeblikksbilder
Overfør bare det som ble endret (et delta), i stedet for hele datasettet. Klientene bruker deltaet på sin lokale kopi, noe som sparer båndbredde.
ws.send(JSON.stringify({ op: 'update', id: 42, fields: { status: 'shipped' } }));Starttilstand pluss strøm
Et vanlig mønster er å sende et fullstendig øyeblikksbilde ved tilkobling og deretter strømme trinnvise endringer. Klienten holder seg synkronisert uten å hente alt på nytt.
Håndtere nye tilkoblinger
Etter en ny tilkobling kan en klient ha gått glipp av endringer. Send et nytt øyeblikksbilde eller en markør for endringene siden den sist kjente versjonen, slik at klienten synkroniseres trygt.
Beste praksis
Strøm endringer på en pålitelig måte:
- Bruk CDC eller LISTEN/NOTIFY i stedet for polling
- Filtrer oppdateringer for hver klient
- Send deltaer, ikke fullstendige øyeblikksbilder
- Synkroniser på nytt ved ny tilkobling for å fylle hull
Kort kontroll
Test kunnskapen din om endringsstrømming.
Oppsummering
Du strømmet direkte databaseendringer til klienter:
- Bruk CDC / LISTEN-NOTIFY i stedet for polling
- Videresend endringshendelser over WebSockets
- Filtrer per klient og send deltaer
- Send et øyeblikksbilde ved tilkobling, og synkroniser på nytt ved ny tilkobling
Dataene dine holdes nå oppdatert hele veien.
Lær deg Programmering av WebSockets og sanntidssystemer med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 12
- Leksjoner
- 47
Ofte stilte spørsmål
Er leksjonen «Strømming av databaseendringer til klienter» gratis?
Ja – hele teksten i «Strømming av databaseendringer til klienter» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Programmering av WebSockets og sanntidssystemer-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Programmering av WebSockets og sanntidssystemer inneholder totalt 3 leksjoner.
Hva lærer jeg i «Strømming av databaseendringer til klienter»?
Send live-oppdateringer fra databasen til tilkoblede klienter ved å lytte etter endringshendelser og videresende dem over WebSockets i sanntid. Du øver på Programmering av WebSockets og sanntidssystemer med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Programmering av WebSockets og sanntidssystemer?
Ingen tidligere erfaring er nødvendig. Programmering av WebSockets og sanntidssystemer på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 3.
Hvor lang tid tar leksjonen «Strømming av databaseendringer til klienter»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Programmering av WebSockets og sanntidssystemer-leksjonen?
Ja. Alle Programmering av WebSockets og sanntidssystemer-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- WebSocket med RESTful API-er
- Kobling til meldingskøer
- Strømming av databaseendringer til klienter