Redis
 sql >> Database >  >> NoSQL >> Redis

Come associare le proprietà all'oggetto socket.io in Redis Store?

Sì, se vuoi bilanciare il carico dei server socket.io dovrai usare uno store come redisstore.

Tuttavia ora non dovresti usare "socket_name_array" + eventi per mantenere i dati coerenti sul tuo server.

Configurazione

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
    }));
});

Utilizzo

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);
  });

});