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