我正在做实时网络应用程序开发。
浏览器用户应该能够通过 node.js 服务器相互通信。其中一个用户写了一条消息,所有其他用户都会收到它。
我不太明白 RabbitMQ 是如何工作的。但是从快速阅读来看,它似乎处理消息的发布/订阅。
用户(在浏览器中)发布某些内容,而订阅者(在其他浏览器中)会收到该消息。这不是 Socket.io 对 websockets 所做的事情吗?
以下是我的问题:
最佳答案
更新
当你只有这些简单的需求时,socket.io 就足够了。 。当您希望以受控方式离线处理作业(繁重)时,您只需要一条消息 queue。
http://en.wikipedia.org/wiki/Message_queue:
这句话需要下沉。生产者(一个进程)将一个作业放入队列,消费者通过从队列中取出作业进行消费。大多数情况下,消费者是多个进程同时消费多个作业。消费者无法相互分辨,他们正在消费什么工作。
我认为这是队列的一个重要属性。先进先出属性虽然使用像 beanstalkd 这样的高级消息队列,但您可以指定作业优先级。
我希望这有任何意义;)
你能不能解释得好一点,以便我们给你一个更好的答案?
请参阅下面有关消息队列的引用。让它沉入一段时间。您还可以阅读有关 message queues 的 WIKI。
Socket.io 支持许多不同的传输(也包括 websockets),因为大多数浏览器不支持 websockets。但例如谷歌浏览器已经支持 websockets。我相信 websockets 是 future 的交通工具(但还不是!)。当您查看 Socket.io's browser support page 时,您会注意到 Socket.io 确实支持所有主要浏览器(有些甚至是古老的)。好消息是它围绕一个很好的 API 进行了包装。
你在比较苹果和橘子,所以比较有点奇怪。
兔MQ
http://www.rabbitmq.com/tutorials/tutorial-one-python.html:
优点
缺点:
Socket.io
http://socket.io/:
优点
缺点
不,你不能,因为它们是两个完全不同的东西。您正在将苹果与橙子进行比较。您应该尝试从我引用的网站中理解这两种描述。
关于node.js - RabbitMQ 与 Socket.io?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6636213/