2017-10-12 57 views
-1

我有一個網絡應用程序已註冊的用戶,我想推動消息具有唯一用戶ID的用戶。爲了能夠將消息發送到客戶端,我需要知道如何通過獨特的用戶ID在@sendto註釋Spring框架的網絡套接字唯一@SendTo註釋

這是註釋

@SendTo("/topic/uniqueuserid") 
    public Greeting greeting(HelloMessage message) throws Exception { 
     int uniqueuserid; 
     Thread.sleep(1000); // simulated delay 
     return new Greeting("Hello, " + message.getName() + uniqueuserid "!"); 
} 

和這個跺腳JS

stompClient.subscribe('/topic/uniqueuserid', function (greeting) { 
      showGreeting(JSON.parse(greeting.body).content); 
     }); 

如何傳遞唯一的用戶標識@SendTo("/topic/uniqueuserid")

+1

也許https://stackoverflow.com/questions/27047310/path-variables-in-spring-websockets-sendto-mapping – 2017-10-12 09:56:26

回答

1

您可以在方法參數中使用@DestinationVariable註釋,例如:

@MessageMapping("/mychat/{uniqueUserId}") 
@SendTo("/topic/{uniqueUserId}") 
public Message message(@DestinationVariable("uniqueUserId") Long uniqueUserId, HelloMessage message) { 
    logger.info("Unique user id: {}", uniqueUserId); 
}