外部代理
简单代理非常适合入门,但它只支持 STOMP 命令的一个子集(不支持确认、回执和其他一些功能),依赖于简单的消息发送循环,并且不适合集群。作为替代方案,您可以将应用程序升级为使用功能齐全的消息代理。
请查阅您选择的消息代理的 STOMP 文档(例如 RabbitMQ、ActiveMQ 等),安装代理,并启用 STOMP 支持运行它。然后,您可以在 Spring 配置中启用 STOMP 代理中继(而不是简单代理)。
以下示例配置启用了一个功能齐全的代理:
上述配置中的 STOMP 代理中继是一个 Spring MessageHandler
,它通过将消息转发到外部消息代理来处理消息。为此,它与代理建立 TCP 连接,将所有消息转发给它,然后将从代理收到的所有消息通过其 WebSocket 会话转发给客户端。本质上,它充当一个“中继
”,双向转发消息。
为您的项目添加 |
此外,应用程序组件(例如 HTTP 请求处理方法、业务服务等)也可以向代理中继发送消息,如 发送消息 中所述,以向已订阅的 WebSocket 客户端广播消息。
实际上,代理中继实现了健壮且可扩展的消息广播。