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