redis-event
v0.10.0
Published
Distributed pub/sub events based on redis
Downloads
343
Maintainers
Readme
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();
});
});
Installation
npm install redis-event
API
new RedisEvent(hostname, [channel, channel, channel...])
Initialise object.
Arguments
hostname
- redis hostname to connect tochannel
- name(s) of the redis pub/sub channel(s) to subscribe to
redisEvent.pub(eventName, payload)
Emit network event.
Arguments
eventName
- event name in form ofchannel:name
, eg.server:stats
payload
- optional JS object to add to the event. Must be serializable to JSON
redisEvent.on(eventName, function(payload))
Subscribe to network event. Special case: ready
event (see below).
Arguments
eventName
- event name in form ofchannel:name
, eg.server:stats
payload
- optional JS object that was added to event
redisEvent.on('ready')
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.
redisEvent.quit()
Disconnect from redis. This is actually useful to quit node application.
TODO
- Encryption