2014-12-04 2 views
1

모두 subscribers(Topic) 및 지정한 user(Channel)에 브로드 캐스트하려면 어떻게합니까?웹 소켓 스톰프 - 브로드 캐스트 (주제, 대기열)

this.messagingTemplate.convertAndSend(destination, message); 
this.messagingTemplate.convertAndSendToUser(userId, destination, message); 

맞습니까?

WebSocketConnectHandlerDecoratorFactory 클래스는 무엇입니까?

public final class WebSocketConnectHandlerDecoratorFactory implements WebSocketHandlerDecoratorFactory { 

    private static final Log logger = LogFactory.getLog(WebSocketConnectHandlerDecoratorFactory.class); 

    private final ApplicationEventPublisher eventPublisher; 

    /** 
    * Creates a new instance 
    * 
    * @param eventPublisher the {@link ApplicationEventPublisher} to use. Cannot be null. 
    */ 
    public WebSocketConnectHandlerDecoratorFactory(ApplicationEventPublisher eventPublisher) { 
     Assert.notNull(eventPublisher, "eventPublisher cannot be null"); 
     this.eventPublisher = eventPublisher; 
    } 

    @Override 
    public WebSocketHandler decorate(WebSocketHandler handler) { 
     return new SessionWebSocketHandler(handler); 
    } 

    private final class SessionWebSocketHandler extends WebSocketHandlerDecorator { 

     public SessionWebSocketHandler(WebSocketHandler delegate) { 
      super(delegate); 
     } 

     @Override 
     public void afterConnectionEstablished(WebSocketSession wsSession) 
       throws Exception { 
      super.afterConnectionEstablished(wsSession); 

      publishEvent(new SessionConnectEvent(this,wsSession)); 
     } 

     private void publishEvent(ApplicationEvent event) { 
      try { 
       eventPublisher.publishEvent(event); 
      } 
      catch (Throwable ex) { 
       logger.error("Error publishing " + event + ".", ex); 
      } 
     } 
    } 
} 

답변

0
  1. 수정.

    /** 
    * Ensures that a {@link SessionConnectEvent} is published in 
    * {@link WebSocketHandler#afterConnectionEstablished(WebSocketSession)}. This 
    * is necessary so that the {@link WebSocketSession} can be mapped to the 
    * corresponding Spring {@link Session} to terminate any 
    * {@link WebSocketSession} associated with a Spring {@link Session} that was 
    * destroyed. 
    * 
    * @author Rob Winch 
    * @since 1.0 
    * 
    * @see WebSocketRegistryListener 
    */ 
    
+0

고마워 :

  • JavaDocs하세요! Artem Bilan. – Olivia

  • +0

    여기 같은 @, 올리비아 –

    관련 문제