RedisAdapter#clientRooms(id:String, fn:Function)

Returns the list of rooms the client with the given ID has joined (even on another node).

io.of('/').adapter.clientRooms('<my-id>',(err,rooms)=>{

if(err){/* unknown id */}

console.log(rooms);// an array containing every room a given id has joined.

});

RedisAdapter#allRooms(fn:Function)

Returns the list of all rooms.

io.of('/').adapter.allRooms((err,rooms)=>{

console.log(rooms);// an array containing all rooms (accross every node)

});

RedisAdapter#remoteJoin(id:String, room:String, fn:Function)

Makes the socket with the given id join the room. The callback will be called once the socket has joined the room, or with an err argument if the socket was not found.

io.of('/').adapter.remoteJoin('<my-id>','room1',(err)=>{

if(err){/* unknown id */}

// success

});

RedisAdapter#remoteLeave(id:String, room:String, fn:Function)

Makes the socket with the given id leave the room. The callback will be called once the socket has left the room, or with an err argument if the socket was not found.

io.of('/').adapter.remoteLeave('<my-id>','room1',(err)=>{

if(err){/* unknown id */}

// success

});

RedisAdapter#remoteDisconnect(id:String, close:Boolean, fn:Function)

Makes the socket with the given id to get disconnected. If close is set to true, it also closes the underlying socket. The callback will be called once the socket was disconnected, or with an err argument if the socket was not found.

io.of('/').adapter.remoteDisconnect('<my-id>',true,(err)=>{

if(err){/* unknown id */}

// success

});

RedisAdapter#customRequest(data:Object, fn:Function)

Sends a request to every nodes, that will respond through the customHook method.

// on every node

io.of('/').adapter.customHook=(data,cb)=>{

cb('hello '+ data);

}

// then

io.of('/').adapter.customRequest('john',function(err,replies){

console.log(replies);// an array ['hello john', ...] with one element per node

});

Client error handling

Access the pubClient and subClient properties of the
Redis Adapter instance to subscribe to its error event:

constredis=require('socket.io-redis');

constadapter=redis('localhost:6379');

adapter.pubClient.on('error',function(){});

adapter.subClient.on('error',function(){});

The errors emitted from pubClient and subClient will
also be forwarded to the adapter instance:

constio=require('socket.io')(3000);

constredis=require('socket.io-redis');

io.adapter(redis({ host:'localhost', port:6379}));

io.of('/').adapter.on('error',function(){});

Custom client (eg: with authentication)

If you need to create a redisAdapter to a redis instance
that has a password, use pub/sub options instead of passing
a connection string.