UNPKG

redis-eventemitter

Version:
103 lines (64 loc) 2.45 kB
# redis-eventemitter [![build status](https://secure.travis-ci.org/freeall/redis-eventemitter.png)](http://travis-ci.org/freeall/redis-eventemitter) Use redis as pubsub using a simple eventemitter. npm install redis-eventemitter ## Usage ```js var redis = require('redis-eventemitter'); var pubsub = redis({ prefix: 'production:', url: 'redis://myuser:mypass@localhost:6379/' // port: 6379, // host: '127.0.0.1', // auth_pass: 'mypassword' // in case you want to control Redis clients // creation you can specify pub/sub clients pair: // pub: pubClient, // sub: subClient }); // Listen for messages on the *:newuser channel pubsub.on('*:newuser', function(channel, user) { console.log(channel); // prints "myservice:newuser" console.log(user); // user is a json map as expected }); // Publish an event "production:myservice:newuser" to the redis pubsub pubsub.emit('myservice:newuser', { id:'a1b2c3', email:'foo@example.com' }); ``` ## API ### .emit(channel, messages...) [publish] ``` js var redis = require('redis-eventemitter'); var pubsub = redis({ prefix: 'production:', host: 'localhost', port: 6379 }); pubsub.emit('myservice:newuser', { id:'a1b2c3' }); ``` ### .on(pattern, function(channel, messages...) { ... }) [subscribe] ``` js var redis = require('redis-eventemitter'); var pubsub = redis({ scope: 'production:', host: 'localhost', port: 6379 }); pubsub.on('*:newuser', function(channel, message) { console.log(channel); // myservice:newuser console.log(message); // { id:'a1b2c3' } }); ``` ### .on('error', function(err) { ... }) [error handling] To be able to handle errors (like when the redis server is down) `.on('error', ...)` should be used. Note that this means that you can't listen for messages on the `error` channel. ### .removeListener(pattern, listener) Removes listener. ### .removeAllListeners(pattern) Removes all listeners. ## Options ### port Port for the redis server. ### host Host for the redis server. ### url Url for the redis server. ### auth_pass Password for the redis server. Defaults to not being set. ### prefix A prefix that is added to the channel name, when publishing events to the redis pubsub. Useful for separating services or environments, e.g. `production`, `development`, and `staging`. It is also removed when the listeners is invoked. ### pub Redis client instance used for `publish`. ### sub Redis client instance used for `subscribe`.