All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.aoju.bus.socket.spring.extension.MessageConfiguration Maven / Gradle / Ivy

There is a newer version: 8.0.0
Show newest version
package org.aoju.bus.socket.spring.extension;

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.web.servlet.HandlerMapping;
import org.springframework.web.socket.WebSocketHandler;
import org.springframework.web.socket.config.annotation.DelegatingWebSocketMessageBrokerConfiguration;
import org.springframework.web.socket.config.annotation.WebMvcStompEndpointRegistry;

/**
 * 代替{@link DelegatingWebSocketMessageBrokerConfiguration},
 * 使用自定义的{@link StompEndpointRegistry}
 * 代替默认的{@link WebMvcStompEndpointRegistry}
 *
 * @author Kimi Liu
 * @version 5.0.8
 * @since JDK 1.8+
 */
public class MessageConfiguration extends DelegatingWebSocketMessageBrokerConfiguration {

    @Bean
    @Override
    public HandlerMapping stompWebSocketHandlerMapping() {
        WebSocketHandler handler = decorateWebSocketHandler(subProtocolWebSocketHandler());
        // 使用 StompEndpointRegistry 代替 WebMvcStompEndpointRegistry
        StompEndpointRegistry registry = new StompEndpointRegistry(
                handler, getTransportRegistration(), messageBrokerTaskScheduler());
        ApplicationContext applicationContext = getApplicationContext();
        if (applicationContext != null) {
            registry.setApplicationContext(applicationContext);
        }
        registerStompEndpoints(registry);
        return registry.getHandlerMapping();
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy