对于最新稳定版本,请使用 Spring Framework 7.0.6spring-doc.cadn.net.cn

简单代理

内置的简单消息代理处理来自客户端的订阅请求, 将其存储在内存中,并向具有匹配目标的已连接客户端广播消息。 该代理支持类路径形式的目标,包括对 Ant 风格目标模式的订阅。spring-doc.cadn.net.cn

应用程序也可以使用点号分隔(而非斜杠分隔)的目的地。 参见使用点号作为分隔符

如果配置了任务调度器,简单代理(simple broker)支持 STOMP 心跳。 要配置调度器,您可以声明自己的 TaskScheduler Bean,并通过 MessageBrokerRegistry 进行设置。或者,您也可以使用内置 WebSocket 配置中自动声明的调度器,但此时您需要使用 @Lazy 注解,以避免内置 WebSocket 配置与您的 WebSocketMessageBrokerConfigurer 之间出现循环依赖。例如:spring-doc.cadn.net.cn

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {

	private TaskScheduler messageBrokerTaskScheduler;

	@Autowired
	public void setMessageBrokerTaskScheduler(@Lazy TaskScheduler taskScheduler) {
		this.messageBrokerTaskScheduler = taskScheduler;
	}

	@Override
	public void configureMessageBroker(MessageBrokerRegistry registry) {
		registry.enableSimpleBroker("/queue/", "/topic/")
				.setHeartbeatValue(new long[] {10000, 20000})
				.setTaskScheduler(this.messageBrokerTaskScheduler);

		// ...
	}
}