2017-11-27 1 views
0

스프링 메시징 v.4.2로 내 스프링 애플리케이션에서 스톰 구독을 제어하려고합니다. 이 스톰 내 봄 응용 프로그램 구성입니다 : 내가 매개 변수로 경로와 stompId 각 가입을 요구하는 방법을 쓸 수있는 방법스프링에서 스톰 구독을 등록하는 방법

@Configuration 
@EnableWebMvc 
@ComponentScan(basePackages = "com.myapp") 
@EnableWebSocketMessageBroker 
@EnableAsync 
@EnableScheduling 
public class Config extends AbstractWebSocketMessageBrokerConfigurer { 

    @Override 
    public void configureMessageBroker(MessageBrokerRegistry config) { 
     config.enableSimpleBroker("/queue", "/topic"); 
     config.setApplicationDestinationPrefixes("/app"); 
     config.setUserDestinationPrefix("/user"); 
    } 

    @Override 
    public void registerStompEndpoints(StompEndpointRegistry registry) { 
     registry.addEndpoint("/pv").setAllowedOrigins("*"); 
    } 

    @Bean 
    public Executor taskExecutor() { 
     return new SimpleAsyncTaskExecutor(); 
    } 

    @Bean 
    public MultipartResolver multipartResolver(){ 
     return new CommonsMultipartResolver(); 
    } 
} 

? 감사

답변

0

이 필요한 경우 StompSubProtocolHandler 적절한 ApplicationEvent의를 제기

if (this.eventPublisher != null) { 
    Principal user = getUser(session); 
    if (isConnect) { 
     publishEvent(this.eventPublisher, new SessionConnectEvent(this, message, user)); 
    } 
    else if (StompCommand.SUBSCRIBE.equals(command)) { 
     publishEvent(this.eventPublisher, new SessionSubscribeEvent(this, message, user)); 
    } 
    else if (StompCommand.UNSUBSCRIBE.equals(command)) { 
     publishEvent(this.eventPublisher, new SessionUnsubscribeEvent(this, message, user)); 
    } 
} 

필요한 모든 정보가 message에 존재한다. 이 문제의 메시지 헤더에서 필수 STOMP 정보를 얻는 방법은 StompHeaderAccessor API를 참조하십시오.

관련 문제