🚀 Launch Week Day 4:Introducing the Alert Details Page: A Better Way to Explore Alerts.Learn More →
Socket
Book a DemoInstallSign in
Socket

primus-redis-rooms

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

primus-redis-rooms

Redis-based room system for Primus

latest
Source
npmnpm
Version
0.3.2
Version published
Maintainers
1
Created
Source

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).

FAQs

Package last updated on 16 Aug 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts