A Node-RED node to listen to pg_notify
Run the following command in the root directory of your Node-RED install
npm install node-red-contrib-postgres-listen
This add-on, allows to listen to PostgreSQL pg_notify mechanism.
The node takes two parameters :
- postgresdb : The PostgreSQL connection configuration
- channel : The channel name specified in the pg_notify command
-
Create a base table:
CREATE TABLE realtime ( id INTEGER DEFAULT nextval('realtime_id_seq'::regclass) NOT NULL, title CHARACTER VARYING(128), PRIMARY KEY (id) );
-
Create a trigger on the table:
CREATE TRIGGER "updated_realtime_trigger" BEFORE INSERT OR DELETE OR UPDATE ON realtime FOR EACH ROW EXECUTE PROCEDURE notify_realtime()
-
Create a trigger function:
CREATE FUNCTION public.notify_realtime() RETURNS trigger LANGUAGE 'plpgsql' COST 100.0 VOLATILE NOT LEAKPROOF AS $BODY$ BEGIN PERFORM pg_notify('addedrecord', '' || row_to_json(NEW)); RETURN NEW; END; $BODY$;
The node will produce a message like that :
{"name":"notification","length":47,"processId":16147,"channel":"addedrecord","payload":{"id":2,"title":"plopcsd"}}
All fields are generated by Postgres with payload being the content of the table row.
- 0.2.0 : Removed the postgres configuration Node and created a dependency to https://flows.nodered.org/node/node-red-contrib-postgres making it possible to have both nodes installed.