Learning
Supabase

Realtime funkciók

postgres_changes feliratkozás, filterek, chat jellegű minták, broadcast és cleanup removeChannel-lal.

Realtime funkciók

A Supabase Realtime WebSocket-en keresztül figyeli az adatbázis változásait.

Tábla változásainak figyelése

const channel = supabase
  .channel("posts-changes")
  .on(
    "postgres_changes",
    { event: "*", schema: "public", table: "posts" },
    (payload) => {
      console.log(payload)
    }
  )
  .subscribe()

Szűrés (pl. egy user)

supabase
  .channel("user-posts")
  .on(
    "postgres_changes",
    { event: "INSERT", schema: "public", table: "posts", filter: `user_id=eq.${userId}` },
    (payload) => console.log(payload.new)
  )
  .subscribe()

Cleanup

return () => {
  supabase.removeChannel(channel)
}

Broadcast (DB nélkül)

const channel = supabase.channel("cursor-positions")
channel.subscribe()

channel.send({
  type: "broadcast",
  event: "cursor-move",
  payload: { x: 100, y: 200 },
})

Rövid összefoglaló

  • Realtime = DB change feed + broadcast.
  • Cleanup nélkül könnyű memóriaszivárgást okozni.

On this page