An utility for connecting EventEmitters via a pubsub. Includes Redis and in-memory backends, and a support of other systems can be added by implementing a very simple Connector wrapper.
$ npm i emitter-pubsub-broker
const EmitterPubsubBroker = require('emitter-pubsub-broker')
const connect = 'redis://localhost:6379' // or empty for in-memory backend
let broker = new EmitterPubsubBroker(connect)
let client = new EventEmitter() // anything that implements the interface
client.on('myEvent', (...args) => { /* handler code */ })
broker.subscribe(client, 'my-channel')
.then(() => broker.publish('my-channel', 'myEvent', ...args))
API documentation is available online.
If you encounter a bug in this package, please submit a bug report to github repo issues.
PRs are also accepted.
MIT