0.1.1 • Published 8 years ago

node-redis-room v0.1.1

Weekly downloads
1
License
MIT
Repository
github
Last release
8 years ago

node-redis-room

Use Rooms and Namespaces of Socket.IO across nodes

Rooms and Namespaces of Socket.IO is very easy to use for implementing chat, cooperation etc. If you want to use it in multi node, you will find you cannot get the list of connected clients in a particular room ( https://github.com/socketio/socket.io-redis/issues/13 , https://github.com/socketio/socket.io-redis/pull/15 )

Someday I got inspired on this project ( https://github.com/rajaraodv/redispubsub ) so I try to implement a library that is easy to use for someone need to use rooms of socket.io across node.

Installation

npm install node-redis-room

Usage

Server side
init
//do not init at socket onconnect event
var redis = require('redis'),
  nodeRedisRoom = require('node-redis-room');
  
  var crud = redis.createClient();
  var sub = redis.createClient();
  var pub = redis.createClient();

  nodeRedisRoom.init(io, crud, sub, pub);
preapre
//prepare user object for nodeRedisRoom at socket onconnect event
var nodeRedisRoomUser = {
  id: user.id, //necessary
  connectionId: socket.id, //necessary
  nick: user.nick,
  avatar: user.avatar
};  
join
nodeRedisRoom.join(socket, roomName, nodeRedisRoomUser, function(err) {});
leave
nodeRedisRoom.leave(socket, roomName, nodeRedisRoomUser, function(err) {});
broadcast
//the command that you need to brocast to other users
nodeRedisRoom.broadcast(roomName, {
  cmd: 'join',
  content: nodeRedisRoomUser
});
getRoomMembers
  nodeRedisRoom.getRoomMembers(roomName, function(err, users) {});
getUserHaveJoinedRooms
  nodeRedisRoom.getUserHaveJoinedRooms(connectionId, function(err, rooms) {});
onDisconnect
  //need to call it when socket disconnect for clearing the user data in redis
  nodeRedisRoom.onDisconnect(nodeRedisRoomUser, function() {});

Example

Run from source
  • start your redis server
  • cd node-redis-room/example
  • npm install
  • DEBUG="nodeRedisRoomExample, nodeRedisRoom" node app.js
test from website
0.1.1

8 years ago

0.1.0

8 years ago

0.0.15

8 years ago

0.0.14

8 years ago

0.0.13

8 years ago

0.0.12

8 years ago

0.0.11

8 years ago

0.0.10

8 years ago

0.0.9

8 years ago

0.0.8

8 years ago

0.0.7

8 years ago

0.0.6

8 years ago

0.0.5

8 years ago

0.0.4

8 years ago

0.0.3

8 years ago

0.0.2

8 years ago

0.0.1

8 years ago

0.0.0

8 years ago