Я создал базовый веб-сокет с помощью учебника.
Вот конфигурация:
@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("/chat");
registry.addEndpoint("/chat").withSockJS();
}
}
А вот и контроллер обработки сообщений:
@MessageMapping("/chat")
@SendTo("/topic/messages")
public OutputMessage send(Message message) throws Exception {
return new OutputMessage("Hello World!");
}
Все работает, но, судя по моему исследованию, веб-сокеты по умолчанию имеют область применения (подключившись к каналу, я вижу все звонки от всех пользователей).
Что я хочу сделать, так это иметь возможность видеть только вызовы из текущего сеанса пользователя или только из текущего представления. Любые идеи о том, как применить эти конфигурации?