优点

与使用原生 WebSocket 相比,使用 STOMP 作为子协议可以使 Spring Framework 和 Spring Security 提供更丰富的编程模型。这与 HTTP 相对于原生 TCP 的情况类似,HTTP 使 Spring MVC 和其他 Web 框架能够提供丰富的功能。以下是其优点列表:

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

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

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

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

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