2016-03-28 8 views
0

Я последовал пример https://spring.io/guides/gs/messaging-stomp-websocket/Отправка сообщения на WebSocket педали эффектов конечных точек с помощью @UserDestination

@Configuration 
@EnableWebSocketMessageBroker 
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer { 

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

@Override 
public void registerStompEndpoints(StompEndpointRegistry registry) { 
    registry.addEndpoint("/hello").withSockJS(); 
} 

} 

Я пытаюсь добавить динамический конечные точки Примера:/привет/user1,/привет/user2.

Хотелось бы получить некоторые идеи о том, как реализовать это?

До сих пор в примерах, которые я вижу, конечные точки являются статическими.

Я хочу изолировать конечные точки даже выборочно.

ответ

0

Я читал о @UserDestination

и изменил мой метод @MessageMapping к

@MessageMapping("/getfeeds") 
public void subscribeToFeeds(Principal principal) throws Exception { 
    String reply = "hello " + principal.getName(); 
    System.out.println("sending " + reply); 
    simpMessagingTemplate.convertAndSendToUser(principal.getName(), "/queue/getfeeds", reply); 
} 

В моей JavaScript, я делаю следующее:

function connect() { 
     var socket = new SockJS('/getfeeds'); 
     stompClient = Stomp.over(socket); 
     stompClient.connect('', '', function(frame1) { 
      setConnected(true); 
      console.log('Connected: ' + frame1);    
       // connect callback 
       // subscribe to 
       stompClient.subscribe('/user/getfeeds', function(name) { 
        var msg = JSON.parse(name.body); 
        showGreeting(name); 
       }); 
     }); 
    } 

Я также призываю stompClient. отправить ("/ приложение/getfeeds");

Я не понимаю, как подписаться на стороне клиента, используя адреса пользователей. Будем очень благодарны за любые комментарии или примеры. Thanks

+0

Ah. Я узнал свои ошибки. Это обновления. 1) convertAndSendToUser (main.getName, "/ queue/messages", reply). 2) stompClient.subscribe ('/ user/queues/messages', ...) – Kans

 Смежные вопросы

  • Нет связанных вопросов^_^