As this library is discontinued, we can provide you a better and more reliable alternative to use. Please have a look at RedisEventClient that is part of the RedisClient lib for OpusCapita Andariel.
This module provides simplified access to the publish/subscribe system provided by Redis. It uses Consul in order to determine the required Redis server endpoint and further configurations. To have a look at the full API, please visit the related wiki page.
First got to your local code directory and run:
npm install ocbesbn-redis-events
To go with the minimum setup, you need to have access to a running Consul server to get your endpoint configuration for Redis. In addition, a Redis server is required which has to be registered inside Consul. If Redis password authentication is required, Consul has to provide the configuration key {{your-service-name}}/redis/password where {{your-service-name}} is the least name of the directory your code runs in. If authentication is not used, you can set the consul.redisPasswordKey to null or false when creating a new instance of RedisEvents.
If all this is set up, go to you code and add the following lines:
const RedisEvents = require('ocbesbn-redis-events');
var events = new RedisEvents({ consul : { host : '{{your-consul-host}}' } });
// Subscribe to a channel by name.
events.subscribe('my-channel', console.log).then(() => events.emit('Hello, world!', 'my-channel'));
// - OR -
// Subscribe to a channel by pattern.
events.subscribe('my-channel.*', console.log).then(() => events.emit('Hello, world!', 'my-channel.sub-channel'));
// Close all Redis connections.
events.disposeAll();
The default configuration object provides hints about what the module's standard behavior is like.
{
serializer : JSON.stringify,
parser : JSON.parse,
defaultEmitChannel : null,
consul : {
host : 'consul',
redisServiceName : 'redis',
redisPasswordKey : 'redis/password'
},
context : {
}
}