【问题标题】:Difference between SockJS and ActiveMQ/RabbitMQSockJS 和 ActiveMQ/RabbitMQ 的区别
【发布时间】:2020-07-11 02:46:36
【问题描述】:

我最近使用 Spring Boot 和 Spring Security 开发了一个简单的消息传递应用程序。该应用程序接受 2 个用户 - 用户 A 和用户 B。一次,用户A 执行特定任务,通知将发送给用户B。目前我正在通过添加 Spring Messaging 依赖项和 SockJS 来做到这一点,效果很好。

这是我感到困惑并希望得到一些指导的地方。我意识到有很多关于 RabbitMQ 和 ActiveMQ 的教程。据我了解,他们是消息代理。请问SockJS和RabbitMQ/ActiveMQ有什么区别?我当前的应用程序中是否需要 RabbitMQ/ActiveMQ 和 SockJS?

【问题讨论】:

    标签: spring-boot spring-security rabbitmq activemq sockjs


    【解决方案1】:

    SockJS 是在浏览器中运行的基于 JavaScript 的 WebSocket client 库。它可用于向代理发送消息或从代理接收消息。

    RabbitMQ 和 ActiveMQ 都是消息代理,例如message-oriented middleware。它们都支持使用消息传递协议(例如 STOMP 或 AMQP)的 WebSocket 客户端。代理从客户端接收消息并向客户端发送消息。

    您还没有真正提供足够的信息来确定您是否真的需要在您当前的应用程序中使用 RabbitMQ 或 ActiveMQ,因为它已经按原样工作了。

    【讨论】:

    • 为了澄清,您提到了“经纪人从客户接收消息并将消息发送给客户”。因为,我的应用程序是关于发送通知的。这是否意味着消息代理肯定需要诸如 SockJS 之类的 websocket 客户端将消息从一个用户发送到另一个用户?
    • 客户端可以使用代理支持的任何类型的协议相互发送消息。例如,一个客户端可能使用 STOMP 通过 SockJS 和 WebSocket 连接,而另一个客户端可能通过某些 IoT 设备上的 MQTT 连接,它们可以交换消息。
    猜你喜欢
    • 2011-12-27
    • 2020-09-07
    • 2016-07-04
    • 1970-01-01
    • 2019-12-31
    • 2015-05-26
    • 1970-01-01
    • 2020-07-11
    • 1970-01-01
    相关资源
    最近更新 更多