繁体   English   中英

使用3台服务器扩展node.js socket.io

[英]Scale node.js socket.io with 3 servers

我知道他们在网上对此问题有很多疑问和答案,但我无法解决它。

我有一个用node.js编写的服务器,并正在监听与socket.io连接

现在,套接字可以在它们之间交换消息,例如聊天,并且我将传入的消息广播到服务器上的所有其他套接字。

我想在3台不同的服务器上运行我的node服务器,其中每台服务器都有不同的IP,我们称它们为: SERVER1SERVER2SERVER3 如果我要从连接到SERVER1的套接字发送消息,这就会引起我的困惑,连接到SERVER2SERVER3的套接字将如何看到此消息?

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

有人能帮助我吗?

我相信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”通道上发布消息。 所有其他服务器都收到该消息,并将其广播给所有客户端。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM