跳到主要内容
版本:7.0.3

外部代理

Hunyuan 7b 中英对照 External Broker

简单Broker非常适合入门使用,但它只支持STOMP命令的一部分(不支持acks、receipts以及一些其他功能),依赖于简单的消息发送循环,因此不适合集群部署。作为替代方案,您可以升级您的应用程序以使用功能更齐全的消息Broker。

请参阅您所选择的消息代理的STOMP文档(例如RabbitMQActiveMQ等),安装该代理并启用STOMP支持后运行它。然后,您可以在Spring配置中启用STOMP代理中继(而不是简单的代理)。

以下示例配置可实现一个功能齐全的代理:

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfiguration implements WebSocketMessageBrokerConfigurer {

@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/portfolio").withSockJS();
}

@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.enableStompBrokerRelay("/topic", "/queue");
registry.setApplicationDestinationPrefixes("/app");
}

}

在前面的配置中,STOMP 中间代理是一个 Spring MessageHandler,它通过将消息转发给外部消息代理来处理这些消息。为此,它会与代理建立 TCP 连接,将所有消息转发给代理,然后再将从代理接收到的所有消息通过客户端的 WebSocket 会话转发给客户端。从本质上讲,它充当一个“中继”,能够在两个方向上转发消息。

备注

为TCP连接管理,请在项目中添加io.projectreactor.netty:reactor-nettyio.netty:netty-all依赖。

此外,应用程序组件(如HTTP请求处理方法、业务服务等)也可以像发送消息中描述的那样,向代理中继发送消息,以便向已订阅的WebSocket客户端广播消息。

实际上,代理中继实现了强大且可扩展的消息广播功能。