Tak, jeśli chcesz równoważyć obciążenie serwerów socket.io, będziesz musiał użyć sklepu takiego jak redisstore.
Jednak teraz nie powinieneś używać "socket_name_array" + zdarzeń, aby zachować spójność danych na całym serwerze.
Konfiguracja
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
}));
});
Użycie
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);
});
});