我目前使用Socket.IO和Redis商店。
我用的是房间功能
所以我完全同意加入房间(订阅)
”(《易经》卷一):“。
我只看到这一页
http://www.rabbitmq.com/blog/2010/11/12/rabbitmq-nodejs-rabbitjs/
我发现有些人正在使用Socket.IO和rabbitMQ。
为什么单独使用Socket.IO还不够好?
在rabbitMQ中使用Socket.IO有什么好的理由吗?
我目前使用Socket.IO和Redis商店。
我用的是房间功能
所以我完全同意加入房间(订阅)
”(《易经》卷一):“。
我只看到这一页
http://www.rabbitmq.com/blog/2010/11/12/rabbitmq-nodejs-rabbitjs/
我发现有些人正在使用Socket.IO和rabbitMQ。
为什么单独使用Socket.IO还不够好?
在rabbitMQ中使用Socket.IO有什么好的理由吗?
3条答案
按热度按时间jfewjypa1#
SocketIO是浏览器-->服务器传输机制,而RabbitMQ是服务器-->服务器消息总线。
这两者可以一起实现,以创建一个非常响应的系统,在这种情况下,用户旅程由一条消息组成,该消息在浏览器上开始,并在某个持久层(如数据库)中结束。
消息将通过socketIO传输到Web服务器,然后,而不是Web服务器负责持久化消息,它将把它放在Rabbit队列中,并让其他一些进程负责持久化它。这样,Web服务器可以自由地返回其Web服务职责,并且至关重要的是,减轻了其负载。
nc1teljy2#
我只是在socket.io上使用rabbitMQ,原因与公认的答案不同。它在2012年没有那么相关,这就是为什么我在这里更新它。
我正在使用一个具有可扩展性和高可用性的聊天应用程序的Docker swarm部署。我在集群中运行了三个聊天应用程序的副本(使用socket.io)。swarm集群自动负载平衡传入的请求,并且在任何给定时间,客户端都可能连接到应用程序的三个副本中的任何一个。
在这种情况下,确实有必要同步应用程序副本中的WebSocket响应,因为连接到应用程序的两个不同示例的两个客户端将无法获得彼此的消息,因为它们已连接到不同的WebSocket。
这就是rabbitMQ的用武之地。它同步应用程序的所有示例,每当从副本上的WebSocket推送消息时,它就会被所有副本推送。
的数据
该项目的完整详细信息已在here中给出。这是socket.io和rabbitMQ结合使用的潜在用例。这适用于在分布式环境中使用socket.io的任何应用程序,具有高可用性和可扩展性。
j91ykkif3#
看看SockJS http://sockjs.org。
1.它是由RabbitMQ团队制作的
1.它比Socket.io简单
除此之外,RabbitMQ团队中还有一个实验项目,打算为RabbitMQ提供一个SockJS插件。