redis-event

Distributed pub/sub events based on redis

node-redis-event

Distributed node.js event emitter based on redis pub/sub.

Supports channels (sort of namespaces). This code is heavily used 24x7 on a thousand-servers cluster, so it is production ready.

SYNOPSIS

var RedisEvent = require('redis-event');
 
var ev = new RedisEvent('redis-host', ['updates', 'stats']);
ev.on('ready', function() {
    ev.on('updates:server', function(data) {
        console.log("Host %s updated to %d", data.hostname, data.count);
    });
 
    ev.pub('updates:test', { 
        launchedAt: new Date() 
    });
 
    ev.pub('stats:date', { 
        now: new Date() 
    });
 
    ev.on('updates:shutdown', function(data) {
        ev.quit();
    });
});
npm install redis-event

Initialise object.

Arguments

  • hostname - redis hostname to connect to
  • channel - name(s) of the redis pub/sub channel(s) to subscribe to

Emit network event.

Arguments

  • eventName - event name in form of channel:name, eg. server:stats
  • payload - optional JS object to add to the event. Must be serializable to JSON

Subscribe to network event. Special case: ready event (see below).

Arguments

  • eventName - event name in form of channel:name, eg. server:stats
  • payload - optional JS object that was added to event

This event is emitted when redis-event has successfully connected to both redis sub and pub channels. You will want to emit events only after this event is fired. If also can be fired multiple times in case there was a reconnect.

Disconnect from redis. This is actually useful to quit node application.

  • Encryption