В моем приложении мне нужно отправлять уведомления в реальном времени конкретному пользователю.Мой WebSocketConfig
класс, как показано ниже,
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
@Override
public void registerStompEndpoints(StompEndpointRegistry stompEndpointRegistry) {
stompEndpointRegistry.addEndpoint("/websocket-example")
.withSockJS();
}
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.enableSimpleBroker("/topic");
}
}
Большую часть времени информация будет отправляться на стороне сервера.Поэтому я не установил пункт назначения приложения.
На стороне клиента я подписываюсь на пункт назначения '/ topic / user`,
function connect() {
var socket = new SockJS('/websocket-example');
stompClient = Stomp.over(socket);
stompClient.connect({}, function (frame) {
setConnected(true);
console.log('Connected: ' + frame);
stompClient.subscribe('/topic/user', function (greeting) {
// showGreeting(JSON.parse(greeting.body).content);
console.log("Received message through WS");
});
});
}
В одном из моих RestController
Iесть метод, который передает сообщение всем подключенным клиентам.
@GetMapping("/test")
public void test()
{
template.convertAndSend("/topic/user", "Hurray");
}
До этой части все работает нормально.Я получаю сообщение и веду журнал на консоль.
Теперь Если я хочу отправить уведомление только определенным пользователям, я должен использовать template.convertAndSendToUser(String user, String destination, String message)
.Но я не понимаю, что я должен передать параметру user
.Где и когда я получу user
?
Я прошел через пару вопросов, связанных с этим, но я не понимаю концепции ясно.