优点
与使用原始 WebSocket 相比,将 STOMP 作为子协议让 Spring Framework 和 Spring Security 提供了更丰富的编程模型。这与 HTTP 相对于原始 TCP 的情况类似,后者让 Spring MVC 和其他 Web 框架提供了丰富的功能。以下是其优点列表:
-
无需发明自定义消息协议和消息格式。
-
STOMP 客户端,包括 Spring Framework 中的 Java 客户端,都可用。
-
您可以(可选地)使用消息代理(如 RabbitMQ、ActiveMQ 等)来管理订阅和广播消息。
-
应用程序逻辑可以组织在任意数量的
@Controller实例中,并且可以根据 STOMP 目标头将消息路由到它们,而不是为给定连接使用单个WebSocketHandler来处理原始 WebSocket 消息。 -
您可以使用 Spring Security 根据 STOMP 目标和消息类型来保护消息。