@SubscribeMapping vs @MessageMapping - PullRequest
0 голосов
/ 26 октября 2018

При использовании веб-сокетов с Spring Boot я видел примеры, которые используют:

@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("/greeting");;
     }  
} 

Указание config.setApplicationDestinationPrefixes ("/ app") и в контроллере с помощью аннотации @MessageMapping.

И я также видел примеры, которые используют только enableSimpleBroker () и в контроллере используют @ SubscribeMapping.

За то, что я понял, @MessageMapping отвечает за маршрутизацию полученного сообщения в правильный метод.И методы с этой аннотацией будут запускаться только в том случае, если в месте назначения содержится один из префиксов, объявленных в setApplicationDestinationPrefixes.

Но @SubscribeMapping также направляет сообщение в правильный метод, и нам не нужно вызывать setApplicationDestinationPrefixes () вкласс конфигурации.

Какая разница?

...