Guides
Use listen() to register a callback.
let token = db
.listen("changes", |payload| {
println!("payload: {payload}");
})
.await?;
db.exec("NOTIFY changes, 'ready'").await?;
db.unlisten_token("changes", token).await?;
Remove listeners
| Method | Purpose |
|---|---|
unlisten_token(channel, token) |
Remove one callback returned by listen().
|
unlisten(channel) |
Remove all callbacks for a channel and send
UNLISTEN.
|
Channel names are quoted when sent to Postgres and normalized to lowercase in the listener map.
Live queries
live_query() builds on LISTEN/NOTIFY. It creates a
view for a SELECT, determines watched tables, installs triggers,
and re-runs the query when a watched table changes.
let handle = db
.live_query("SELECT id, name FROM users", &[], |rows| {
println!("fresh rows: {}", rows.len());
})
.await?;
handle.refresh();
handle.unsubscribe().await?;
