使用STOMP作为子协议,可以让Spring框架和Spring Security提供比直接使用原始WebSockets更丰富的编程模型。类似HTTP与原始TCP的比较,以及HTTP协议是如何让Spring MVC和其他Web框架拥有丰富的功能。以下是STOMP协议的一些好处:
- 不需要再发明自定义的消息协议和消息格式。
- 有很多现成的STOMP客户端,包括Spring框架中的Java客户端。
- 你可以(可选地)使用消息代理(如RabbitMQ、ActiveMQ等)来管理订阅和广播消息。
- 应用程序逻辑可以在任意的
@Controller
实例中组织,并且可以根据STOMP的destination消息头将消息路由到它们,而不是用单个WebSocketHandler
处理一个给定连接的原始WebSocket消息。 - 你可以使用Spring Security根据STOMP目的地和消息类型来保护消息。