redison

0.0.9 • Public • Published

About

Redis subscribe event mapper

Dependencies

  • redis

Install

From Github

$ git clone git@github.com:YoshiyukiKato/Redison.git
$ cd Redison && npm install

From npm

$ npm install redison

Usage

Overview

Redison provides simple method for setting callbacks for events of Redis subscriber by hashmap.

var Redison = require("redison"),
    client = Redison.redisonize().startListener();
 
client.setSub({
    subChannel1:{
        subscribe:function(channel,count){
            console.log("Subscribing " + channel + " :: Now we subscribe " + count + " channels");
        },
        message:function(channel,message){
            console.log(message);
        }
    }
});
 

Redison extends node_redis without overriding any method. You can use Redison client same as node_redis client.

In case of setting detail prameter of redis connection in node_redis client, you can decorate the node_redis client by redisonize method.

var node_redis = require("redis"),
    nrClient = node_redis.createClient(port, host, options);
    
var redisonClient = require("redison").redisonize(nrClient);

Subscribe with Event Map

Setting callbacks of redis subscriber events for every channel/pattern by hashmap.

Precondition

var Redison = require("redison"),
    client = Redison.redisonize();

Start/Stop listener

startListener([eventNames])

This activates listeners of redis subscriber events specified in [eventNames].

client.startListener("subscribe","message");

In case of invokation with no arguments, startListener activates event listeners of all redis subscriber events: subscribe, message, unsubscribe, psubscribe, pmessage, punsubscribe.

stoplistener([eventNames])

This removes listeners of redis subscriber events specified in [eventNames].

client.stopListener("subscribe","message");

In case of invokation with no arguments, stopListener removes event listeners of all redis subscriber events: subscribe, message, unsubscribe, psubscribe, pmessage, punsubscribe.

Common subscriber

setSub(subMap)

Setting up common redis subscriber with callbacks defined in subMap.

client.setSub(subMap);

The subMap is written as follows:

var subMap = {
    //channels name
    subChannel1:{
        //event:callback
        subscribe:function(channel,count){
            console.log("Subscribing " + channel + " :: Now we subscribe " + count + " channels");
        },
        message:function(channel,message){
            console.log(message);
        },
        unsubscribe:function(channel,count){
            console.log("Unsubscribing " + channel + " :: Now we subscribe " + count + " channels");
        }
    },
    subChannel2:{
        subscribe:function(channel,count){
            console.log("callback");
        },
        message:function(channel,message){
            console.log("I got a message :: " + message);
        },
        unsubscribe:function(channel, count){
            console.log("See you " + channel);
        }
    }
}

Pattern subscriber

setPsub(psubMap)

Setting up redis pattern subscriber with callbacks defined in psubMap.

client.setPsub(psubMap);

The psubMap is written as follows:

var psubMap = {
    //patterns
    "pattern*":{
        //event:callback
        subscribe:function(channel,count){
            console.log("Subscribing " + channel + " :: Now we subscribe " + count + " channels");
        },
        message:function(pattern,channel,message){
            console.log(pattern + " :: " + channel + " :: " +message);
        },
        unsubscribe:function(channel,count){
            console.log("Unsubscribing " + channel + " :: Now we subscribe " + count + " channels");
        }
    },
    "pat*ern":{
        subscribe:function(channel,count){
            console.log("callback");
        },
        message:function(pattern,channel,message){
            console.log("I got a message from" + channel + "caught by" + pattern + ":: " + message);
        },
        unsubscribe:function(channel, count){
            console.log("See you " + channel);
        }
    }
}

Unsubscribe with State

Unsubscribing a specific channel/pattern with a state. The state allows you to choose whether delete callback setted by Event Map or not. stateUnsub/statePunsub method provides two kinds of unsubscription: quit and pause. The quit deletes callback, the pause do not.

client.stateUnsub(channel,quitState);

Unsubscribe/Punsubscribe as Quit

client.stateUnsub(channel,true);
client.statePunsub(pattern,true);

Unsubscribe/Punsubscribe as Pause

client.stateUnsub(channel,false);
client.statePunsub(pattern,false);

LICENSE

MIT

Readme

Keywords

none

Package Sidebar

Install

npm i redison

Weekly Downloads

0

Version

0.0.9

License

MIT

Last publish

Collaborators

  • yoshiyuki