1 min čtení

Real-time notifikace (SSE)

Přihlaste se k PostgreSQL NOTIFY kanálům přes Server-Sent Events:

curl -N "http://localhost:8080/db/my_database/sse?channels=orders,users" \
  -H "Authorization: Bearer $TOKEN"

Každá zpráva je JSON s názvem kanálu a payloadem:

{"channel":"orders","data":{"id":123,"status":"created"}}

Pokud je payload text, zabalí se jako string do data.

Odesílání notifikací z PostgreSQL

Z psql nebo jakékoli databázové session:

-- Jednoduchý textový payload
NOTIFY orders, 'nova objednavka';

-- JSON payload
NOTIFY orders, '{"id":123,"status":"created"}';

Z triggeru nebo uložené procedury:

PERFORM pg_notify('orders', json_build_object('id', NEW.id, 'status', NEW.status)::text);
Poznámka: NOTIFY se doručí ostatním sessions až po commitu transakce, která ho odeslala. Pokud ho spustíte uvnitř otevřené transakce v psql, odběratelé ho obdrží až po COMMIT.