0.3.2 • Published 6 years ago

primus-redis-rooms v0.3.2

Weekly downloads
27
License
MIT
Repository
github
Last release
6 years ago

primus-redis-rooms

Build Status

primus-redis-rooms is a Redis store for Primus and primus-rooms.

It takes care of distributing messages to other instances using Redis Pub/Sub.

So, you can have client A connected to server X in room foo and have server Y emit messages to foo and client A will receive them. Magic.

Usage

Single Redis instance

You can use primus-redis-rooms with a single Redis instance, but it's not recommended in production environment, since it makes Redis a single point of failure.

var http = require('http'),
    Primus = require('primus'),
    PrimusRedisRooms = require('primus-redis-rooms');

var server = http.createServer();
var primus = new Primus(server, {
  redis: {
    host: 'localhost',
    port: 6379,
    channel: 'primus' // Optional, defaults to `'primus`'
  },
  transformer: 'websockets'
});
primus.use('redis', PrimusRedisRooms);

//
// This'll take care of sending the message to all clients in room called
// `our-room`.
//
primus.room('our-room').write('Hello world!');

Sentinel

Redis Sentinel is a failover mechanism built into Redis.

When using Sentinel, Redis client will automatically reconnect to new master server when current one goes down.

var http = require('http'),
    Primus = require('primus'),
    PrimusRedisRooms = require('primus-redis-rooms');

var server = http.createServer();
var primus = new Primus(server, {
  redis: {
    sentinel: true,
    endpoints: [
      { host: 'localhost', port: 26379 },
      { host: 'localhost', port: 26380 },
      { host: 'localhost', port: 26381 }
    ],
    masterName: 'mymaster'
    channel: 'primus' // Optional, defaults to `'primus`'
  },
  transformer: 'websockets'
});
primus.use('redis', PrimusRedisRooms);

Changes

0.2 -> 0.3

  • Wire format change - data is no longer written to clients as { room: "foo", data: { our: "bar" } }, only actual data is sent ({ our: "bar" } in this case).
0.3.2

6 years ago

0.3.1

10 years ago

0.3.0

10 years ago

0.2.5

10 years ago

0.2.4

10 years ago

0.2.3

10 years ago

0.2.2

10 years ago

0.2.1

10 years ago

0.2.0

10 years ago

0.1.1

11 years ago

0.1.0

11 years ago