1.0.6 • Published 7 years ago

ocbesbn-redis-events v1.0.6

Weekly downloads
14
License
MIT
Repository
github
Last release
7 years ago

ocbesbn-redis-events

Coverage Status Build status

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.

Minimum setup

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();

Default configuration

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 : {
    }
}