我在负载均衡器后面的2个Google Cloud实例上有一个NodeJS项目。我正在使用socket.io
。我想分享实例之间的会话。
通常开发人员使用socket.io-redies进行此操作,但我不想要redis
。我有Cloud SQL(Aka:MySQL),我想使用MySQL来共享会话。
我已经理解了redis适配器文件的整个index.js,除了这个函数:
https://github.com/socketio/socket.io-redis/blob/master/index.js#L93
Redis.prototype.onmessage = function(channel, msg){
var args = msgpack.decode(msg);
var packet;
if (uid == args.shift()) return debug('ignore same uid');
packet = args[0];
if (packet && packet.nsp === undefined) {
packet.nsp = '/';
}
if (!packet || packet.nsp != this.nsp.name) {
return debug('ignore different namespace');
}
args.push(true);
this.broadcast.apply(this, args);
};
如果我需要从MySQL(订阅)获取事件,我认为这是不可能的。我是对的吗?
您是否知道在不使用Redis的情况下在两台计算机之间共享socket.io
的另一种解决方案?