2

我知道他们在网上有很多关于这个问题的问题和答案,但我无法让它发挥作用。

我有一个服务器写入node.js并监听连接socket.io

现在,套接字可以在它们之间交换消息,就像聊天一样,我正在将传入的消息广播到服务器上的所有其他套接字。

我想node在 3 台不同的服务器上运行我的服务器,每台服务器都有不同的 IP,让我们称它们为SERVER1SERVER2SERVER3. 这是我的困惑,如果我从连接到的套接字发送消息,那么连接到的SERVER1套接字将如何看到此消息?SERVER2SERVER3

我听说过RedisStore,RabbitMQ和其他东西,但我找不到可以解释我如何正确做的好文章/帖子/书...

有人能帮助我吗?

4

1 回答 1

4

我相信 RedisStore 会自动为您执行此操作,这里有一篇关于它的好帖子:http ://www.ranu.com.ar/2011/11/redisstore-and-rooms-with-socketio.html

这是如何在内部完成的?

正如您所听说的,Redis、RabbitMQ、ZeroMQ 等具有发布-订阅功能,这意味着您可以订阅频道并在频道上发布信息(向所有连接的对等方):

https://github.com/mranney/node_redis#publish--subscribe

所以服务器 A、B 和 C 订阅了同一个频道。例如,当连接到服务器 A 的客户端想要为连接到聊天室“js”的所有用户发送消息时,他向服务器 A 发送消息,服务器 A 在“js”频道上发布消息。所有其余的服务器都会收到该消息并将其广播给所有客户端。

于 2012-05-22T14:13:59.800 回答