sse-broadcast-redis
v0.1.1
Published
Redis adapter for sse-broadcast
Downloads
19
Maintainers
Readme
sse-broadcast-redis
Redis adapter for sse-broadcast.
SSE is a long-polling solution, consequently if you want to broadcast events to every client subscribed to a given channel then you’ll need some way of passing messages between processes or computers. This package distributes events across nodes on top of Redis.
Usage
const os = require('os'),
cluster = require('cluster')
if (cluster.isMaster)
for (var i = os.cpus().length; i--;)
cluster.fork()
else {
const app = require('express')(),
sse = require('sse-broadcast')()
require('sse-broadcast-redis')(sse, { host: 'localhost', port: 6379 })
app.get('/events', function (req, res) {
sse.subscribe('channel', res)
})
app.post('/event', function (req, res) {
sse.publish('channel', 'event', 'data')
res.send()
})
app.listen(3333)
}
Note: options are passed to redis directly.
API
const Adapter = require('sse-broadcast-redis')
Adapter(broadcaster, [clientOrOptions])
Package's main export is the adapter constructor. Its first argument is a required Broadcaster
instance,
second is an optional redis client or an options object for redis.createClient()
. See redis documentation regarding the available settings.
Adapter.Adapter
Circular reference to the adapter constructor for those who find require('sse-broadcast-redis').Adapter
more expressive.
Adapter.version
The version string from package manifest.
const adapter = new Adapter(broadcaster)
adapter.unref(), adapter.quit() and adapter.end([flush])
Call the corresponding methods of internally used redis clients.
Event: 'error'
Delegated error
events of internal clients.
Compatibility
sse-broadcast-redis
is compatible with Node.js 0.12
and above.
Installation
With npm:
npm install sse-broadcast-redis