sql >> Base de Datos >  >> NoSQL >> Redis

¿Cómo asociar propiedades al objeto socket.io en Redis Store?

Sí, si desea equilibrar la carga de los servidores socket.io, deberá usar una tienda como redisstore.

Sin embargo, ahora no debe usar "socket_name_array" + eventos para mantener la coherencia de los datos en su servidor.

Configuración

var redis = require('redis'),
var pub = redis.createClient(port, host),
var sub = redis.createClient(port, host),
var client = redis.createClient(port, host);

io.configure(function(){
    io.set('store', new RedisStore({
        redisPub: pub,
        redisSub : sub,
        redisClient : client
    }));
});

Uso

io.sockets.on('connection', function (socket) {
  var name = generate_random_name();
  socket.set('name', name); // store it in redis and forward this to other socket.io servers

  // On another server, if you want to retrieve this value from this socket just do:
  socket.get('name', function(err, name){
    // don't forget err. handling
    console.log(name);
  });

});