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