优势

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

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

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

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

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

  • 您可以使用 Spring Security 基于 STOMP 目标和消息类型来保护消息。