优势

使用 STOMP 作为子协议可以让 Spring 框架和 Spring Security 提供比使用原始 WebSocket 更丰富的编程模型。关于 HTTP 与原始 TCP 及其如何让 Spring MVC 和其他 Web 框架提供丰富功能,也可以提出同样的观点。以下是优点列表

  • 无需发明自定义消息协议和消息格式。

  • STOMP 客户端(包括 Spring 框架中的 Java 客户端)可用。

  • 您可以(可选)使用消息代理(例如 RabbitMQ、ActiveMQ 等)来管理订阅和广播消息。

  • 应用程序逻辑可以组织在任意数量的 @Controller 实例中,并且可以根据 STOMP 目标标头将消息路由到它们,而不是使用单个 WebSocketHandler 处理给定连接的原始 WebSocket 消息。

  • 您可以使用 Spring Security 根据 STOMP 目标和消息类型保护消息。