什么是setApplicationDestinationPrefixes用于?

Fra*_*ost 10 java spring websocket

我按照教程在Java Spring应用程序中实现了websockets.它到目前为止工作正常,但我真的想了解它的用途:

config.setApplicationDestinationPrefixes("/app");
Run Code Online (Sandbox Code Playgroud)

我的整个配置看起来像这样

@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();
  }
}
Run Code Online (Sandbox Code Playgroud)

我基本上只是不明白春季文档/ tut中给出的解释 - 例如

...它为@ MessageMapping-annotated方法绑定的消息指定"/ app"前缀.

Vic*_*tor 6

换句话说,除了确保将在服务器上接收并具有列表中设置的前缀之一的所有消息将由setApplicationDestinationPrefixes您使用@MessageMapping注释注释的方法之一解释之外,它没有真正的意义。

更简单的 put -@MessageMapping只有当消息具有列表中的前缀之一时,才会触发由 注释的方法。


小智 5

在使用STOMP从客户端发送消息时,setApplicationDestinationPrefixes用作消息映射的前缀。因此,如果您的客户端使用STOMP发送@MessageMapping(“ add”)数据,则stompClient.send(“ / app / add” ..)