Skip to content

Latest commit

 

History

History
68 lines (46 loc) · 1.8 KB

File metadata and controls

68 lines (46 loc) · 1.8 KB

node-red-contrib-postgres-listen

A Node-RED node to listen to pg_notify

Install

Run the following command in the root directory of your Node-RED install

npm install node-red-contrib-postgres-listen

Overview

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

PostgreSQL sample code

  1. Create a base table:

     CREATE TABLE realtime
     (
         id INTEGER DEFAULT nextval('realtime_id_seq'::regclass) NOT NULL,
         title CHARACTER VARYING(128),
         PRIMARY KEY (id)
     );
    
  2. 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()
    
  3. 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$;
    

Result

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.

Changelog