0

正如socket.io所解释的,我们可以在多服务器上使用socket io,请先看代码:

var RedisStore = require('socket.io/lib/stores/redis')
  , redis  = require('socket.io/node_modules/redis')
  , pub    = redis.createClient()
  , sub    = redis.createClient()
  , client = redis.createClient();

io.set('store', new RedisStore({
  redisPub : pub
, redisSub : sub
, redisClient : client
}));

现在我有一些问题:

1:如果我想在 3 台服务器上运行 socket.io 并在每台服务器上运行 2 个实例,我该如何实现?

2:认为用户连接到服务器1(来自3服务器),socket.io可以处理三个服务器上的房间,所以来自服务器2和3的用户得到消息?

3:我需要节点集群在三台服务器上运行socket io吗?

4

1 回答 1

0

只要每个实例都指向同一个 Redis 存储,您的所有房间都将可用。如果您想在单个服务器上运行节点应用程序的多个实例,您可以使用节点集群。

于 2013-08-14T20:04:01.820 回答