Programmering av WebSockets og sanntidssystemer · leksjon

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.

Leksjon 3 av 313 trinn

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 / NOTIFY eller 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.

Gratis å komme i gang

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

  1. WebSocket med RESTful API-er
  2. Kobling til meldingskøer
  3. Strømming av databaseendringer til klienter
← Tilbake til Programmering av WebSockets og sanntidssystemer