【发布时间】:2014-09-25 04:30:09
【问题描述】:
我对在 Heroku 上使用多个 dyno 运行节点以及如何跨实例访问 socket.io/redis 感到困惑。我正在使用 socket.io 0.9.16。
(1) 首先,当我在 Heroku 中扩展到两个 dynos 时,这仅仅意味着两个节点实例?
(2) 其次,当我像这样创建io 的实例时:
var io = require('socket.io').listen(server);
那么当第二个node 实例被创建时,第二个io 实例也随之创建——对吗?
(3) 使用redis 的原因是创建一个可供所有实例访问的单一商店——对吗?
但是,当我像这样为io 创建一个新的redisstore 时:
var ioRedisStore = require('socket.io/lib/stores/redis');
io.set('store', new ioRedisStore({
redisPub : redis.createClient(),
redisSub : redis.createClient(),
redisClient : redis.createClient()
}));
(4) 这个redis 实例现在不是由每个节点实例创建,然后设置为每个io 实例的存储吗?这如何跨实例?
【问题讨论】: