是的,如果要对socket.io服务器进行负载平衡,则必须使用redisstore之类的存储。
但是,现在您不应该使用“ socket_name_array” +事件来维护服务器之间的数据一致。
设定
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 }));});用法
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); });});


