我目前正在开发一个网络应用程序,它需要一个 websocket 连接来接收来自服务器的事件通知。
客户端被分成组,并且组中的所有客户端必须接收相同的事件通知。
我认为 ActiveMQ 可能可以支持这种模型,为每组客户端使用不同的队列。使用 stomp 将事件推送到 ActiveMQ,然后为客户端使用 stomp-over-websockets 也相对容易。
我看到的问题是消息不应仅由一个客户端使用,而应分发给连接到队列的所有客户端。
另外,不应存储队列。如果事件生成时客户端未连接,则它将永远不会收到该事件。
我不太了解 ActiveMQ,所以我不确定这是否可能,或者是否有另一个简单的解决方案可以使用,而不是编写自己的消息服务器。
Thanks
ActiveMQ 5.4.1 原生支持 WebSocket(就像 Stomp、JMS 等)。
有队列的概念(您提到了这些),还有主题的概念。
在队列中,单个消息将由主题中的一个消费者接收
它发给所有订阅者。看:http://activemq.apache.org/how-does-a-queue-compare-to-a-topic.html http://activemq.apache.org/how-does-a-queue-compare-to-a-topic.html
有一些 Stomp-WebSocket JS 库。 Kaazing 的捆绑包包含 ActiveMQ,并支持基于 WebSocket 的 JMS API/Stomp 协议,并支持旧版浏览器、不同的客户端技术和跨站点安全性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)