@Override protected SimpAnnotationMethodMessageHandler createAnnotationMethodMessageHandler() { return new WebSocketAnnotationMethodMessageHandler( clientInboundChannel(), clientOutboundChannel(), brokerMessagingTemplate()); }
@Bean public WebSocketMessageBrokerStats webSocketMessageBrokerStats() { AbstractBrokerMessageHandler relayBean = stompBrokerRelayMessageHandler(); // Ensure STOMP endpoints are registered stompWebSocketHandlerMapping(); WebSocketMessageBrokerStats stats = new WebSocketMessageBrokerStats(); stats.setSubProtocolWebSocketHandler((SubProtocolWebSocketHandler) subProtocolWebSocketHandler()); if (relayBean instanceof StompBrokerRelayMessageHandler) { stats.setStompBrokerRelay((StompBrokerRelayMessageHandler) relayBean); } stats.setInboundChannelExecutor(clientInboundChannelExecutor()); stats.setOutboundChannelExecutor(clientOutboundChannelExecutor()); stats.setSockJsTaskScheduler(messageBrokerTaskScheduler()); return stats; }
protected final WebSocketTransportRegistration getTransportRegistration() { if (this.transportRegistration == null) { this.transportRegistration = new WebSocketTransportRegistration(); configureWebSocketTransport(this.transportRegistration); } return this.transportRegistration; }
@Bean public HandlerMapping stompWebSocketHandlerMapping() { WebSocketHandler handler = decorateWebSocketHandler(subProtocolWebSocketHandler()); WebMvcStompEndpointRegistry registry = new WebMvcStompEndpointRegistry( handler, getTransportRegistration(), messageBrokerTaskScheduler()); ApplicationContext applicationContext = getApplicationContext(); if (applicationContext != null) { registry.setApplicationContext(applicationContext); } registerStompEndpoints(registry); return registry.getHandlerMapping(); }
@Bean public WebSocketHandler subProtocolWebSocketHandler() { return new SubProtocolWebSocketHandler(clientInboundChannel(), clientOutboundChannel()); }
@Bean @ConditionalOnBean(WebSocketMessageBrokerConfigurationSupport.class) public TracingChannelInterceptor tracingOutboundChannelInterceptor( WebSocketMessageBrokerConfigurationSupport config) { TracingChannelInterceptor interceptor = new TracingChannelInterceptor(tracer, Tags.SPAN_KIND_CLIENT); config.clientOutboundChannel().addInterceptor(interceptor); return interceptor; } }
@Bean @ConditionalOnBean(WebSocketMessageBrokerConfigurationSupport.class) public TracingChannelInterceptor tracingInboundChannelInterceptor( WebSocketMessageBrokerConfigurationSupport config) { TracingChannelInterceptor interceptor = new TracingChannelInterceptor(tracer, Tags.SPAN_KIND_SERVER); config.clientInboundChannel().addInterceptor(interceptor); return interceptor; }
protected WebSocketHandler decorateWebSocketHandler(WebSocketHandler handler) { for (WebSocketHandlerDecoratorFactory factory : getTransportRegistration().getDecoratorFactories()) { handler = factory.decorate(handler); } return handler; }
@Override protected MappingJackson2MessageConverter createJacksonConverter() { MappingJackson2MessageConverter messageConverter = super.createJacksonConverter(); // Use Jackson builder in order to have JSR-310 and Joda-Time modules registered automatically Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.json(); ApplicationContext applicationContext = getApplicationContext(); if (applicationContext != null) { builder.applicationContext(applicationContext); } messageConverter.setObjectMapper(builder.build()); return messageConverter; }
@Bean public HandlerMapping stompWebSocketHandlerMapping() { WebSocketHandler handler = decorateWebSocketHandler(subProtocolWebSocketHandler()); WebMvcStompEndpointRegistry registry = new WebMvcStompEndpointRegistry( handler, getTransportRegistration(), messageBrokerTaskScheduler()); ApplicationContext applicationContext = getApplicationContext(); if (applicationContext != null) { registry.setApplicationContext(applicationContext); } registerStompEndpoints(registry); return registry.getHandlerMapping(); }
@Bean public WebSocketHandler subProtocolWebSocketHandler() { return new SubProtocolWebSocketHandler(clientInboundChannel(), clientOutboundChannel()); }
protected WebSocketHandler decorateWebSocketHandler(WebSocketHandler handler) { for (WebSocketHandlerDecoratorFactory factory : getTransportRegistration().getDecoratorFactories()) { handler = factory.decorate(handler); } return handler; }
@Override protected MappingJackson2MessageConverter createJacksonConverter() { MappingJackson2MessageConverter messageConverter = super.createJacksonConverter(); // Use Jackson builder in order to have JSR-310 and Joda-Time modules registered automatically Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.json(); ApplicationContext applicationContext = getApplicationContext(); if (applicationContext != null) { builder.applicationContext(applicationContext); } messageConverter.setObjectMapper(builder.build()); return messageConverter; }
@Bean public HandlerMapping stompWebSocketHandlerMapping() { WebSocketHandler handler = decorateWebSocketHandler(subProtocolWebSocketHandler()); WebMvcStompEndpointRegistry registry = new WebMvcStompEndpointRegistry( handler, getTransportRegistration(), messageBrokerTaskScheduler()); ApplicationContext applicationContext = getApplicationContext(); if (applicationContext != null) { registry.setApplicationContext(applicationContext); } registerStompEndpoints(registry); return registry.getHandlerMapping(); }
@Bean public WebSocketMessageBrokerStats webSocketMessageBrokerStats() { AbstractBrokerMessageHandler relayBean = stompBrokerRelayMessageHandler(); // Ensure STOMP endpoints are registered stompWebSocketHandlerMapping(); WebSocketMessageBrokerStats stats = new WebSocketMessageBrokerStats(); stats.setSubProtocolWebSocketHandler((SubProtocolWebSocketHandler) subProtocolWebSocketHandler()); if (relayBean instanceof StompBrokerRelayMessageHandler) { stats.setStompBrokerRelay((StompBrokerRelayMessageHandler) relayBean); } stats.setInboundChannelExecutor(clientInboundChannelExecutor()); stats.setOutboundChannelExecutor(clientOutboundChannelExecutor()); stats.setSockJsTaskScheduler(messageBrokerTaskScheduler()); return stats; }
@Override protected SimpAnnotationMethodMessageHandler createAnnotationMethodMessageHandler() { return new WebSocketAnnotationMethodMessageHandler( clientInboundChannel(), clientOutboundChannel(), brokerMessagingTemplate()); }
@Bean public WebSocketHandler subProtocolWebSocketHandler() { return new SubProtocolWebSocketHandler(clientInboundChannel(), clientOutboundChannel()); }
protected WebSocketHandler decorateWebSocketHandler(WebSocketHandler handler) { for (WebSocketHandlerDecoratorFactory factory : getTransportRegistration().getDecoratorFactories()) { handler = factory.decorate(handler); } return handler; }
@Override protected MappingJackson2MessageConverter createJacksonConverter() { MappingJackson2MessageConverter messageConverter = super.createJacksonConverter(); // Use Jackson builder in order to have JSR-310 and Joda-Time modules registered automatically Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.json(); ApplicationContext applicationContext = getApplicationContext(); if (applicationContext != null) { builder.applicationContext(applicationContext); } messageConverter.setObjectMapper(builder.build()); return messageConverter; }
protected final WebSocketTransportRegistration getTransportRegistration() { if (this.transportRegistration == null) { this.transportRegistration = new WebSocketTransportRegistration(); configureWebSocketTransport(this.transportRegistration); } return this.transportRegistration; }