Notifiche in tempo reale (SSE)
Iscriviti ai canali PostgreSQL NOTIFY tramite Server-Sent Events:
curl -N "http://localhost:8080/db/my_database/sse?channels=orders,users" \
-H "Authorization: Bearer $TOKEN"Ogni messaggio è JSON con il canale e il payload:
{"channel":"orders","data":{"id":123,"status":"created"}}Se il payload è testo, viene incapsulato come stringa in data.
Inviare notifiche da PostgreSQL
Da psql o qualsiasi sessione di database:
-- Payload testo semplice
NOTIFY orders, 'nuovo ordine';
-- Payload JSON
NOTIFY orders, '{"id":123,"status":"created"}';
Da un trigger o una stored procedure:
PERFORM pg_notify('orders', json_build_object('id', NEW.id, 'status', NEW.status)::text);Nota:
NOTIFY viene consegnato alle altre sessioni solo dopo il commit della
transazione mittente. Se lo esegui all’interno di una transazione aperta in psql, i
sottoscrittori lo riceveranno solo dopo il COMMIT.