2016-03-28 19 views
0

Ich folgte dem Beispiel https://spring.io/guides/gs/messaging-stomp-websocket/Senden von Nachrichten stampfen Endpunkte mit @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(); 
} 

} 

Ich versuche, dynamische Ex-Endpunkte in den WebSocket.

Möchten Sie einige Ideen, wie dies zu implementieren?

Bis jetzt, in den Beispielen, die ich sehe, sind die Endpunkte statisch.

Ich möchte Endpunkte sogar selektiv trennen.

Antwort

0

las ich über @UserDestination

und geändert

meine @MessageMapping Methode
@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); 
} 

In meinem Javascript, ich folgendes tue:

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); 
       }); 
     }); 
    } 

Ich nenne auch stompClient. sende ("/ app/getfeeds");

Ich bin unklar, wie Sie auf der Clientseite mit Benutzerzielen abonnieren. Alle Kommentare oder Beispiele würden sehr geschätzt werden. Danke

+0

Ah. Ich habe meine Fehler gefunden. Dies sind die Aktualisierungen. 1) convertAndSendToUser (principal.getName, "/ queue/messages", antworten). 2) stompClient script ('/ user/queues/messages', ...) – Kans