什么是setApplicationDestinationPrefixes用于?

时间:2016-07-12 08:04:19

标签: java spring websocket

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

config.setApplicationDestinationPrefixes("/app");

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

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

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

  

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

3 个答案:

答案 0 :(得分:5)

setApplicationDestinationPrefixes用作使用STOMP从客户端发送消息时消息映射的前缀。 因此,如果您的客户端使用STOMP为@MessageMapping发送数据("添加"),那么stompClient.send(" / app / add" ..)

答案 1 :(得分:0)

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

简单放置-由@MessageMapping注释的方法仅在邮件具有列表中的前缀之一时才会触发。

答案 2 :(得分:0)

setApplicationDestinationPrefixes(“ / app”)-用于

配置一个或多个前缀以过滤目标定位 应用程序注释方法。处理邮件后, 匹配的前缀将从目标中删除,以形成 查找路径。这意味着注释不应包含目的地 前缀。1

参考:-https://helptechcommunity.wordpress.com/2020/01/28/websocket-chat-application-using-spring-boot-and-react-js/