我遵循了一个教程,在我的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方法的消息的前缀。
答案 0 :(得分:5)
setApplicationDestinationPrefixes用作使用STOMP从客户端发送消息时消息映射的前缀。 因此,如果您的客户端使用STOMP为@MessageMapping发送数据("添加"),那么stompClient.send(" / app / add" ..)
答案 1 :(得分:0)
换句话说,除了确保将由您的方法之一解释所有将在服务器上接收并具有setApplicationDestinationPrefixes
设置的列表中的前缀之一的消息之外,它没有任何实际意义。您用@MessageMapping
注解进行注解。
简单放置-由@MessageMapping
注释的方法仅在邮件具有列表中的前缀之一时才会触发。
答案 2 :(得分:0)
setApplicationDestinationPrefixes(“ / app”)-用于
配置一个或多个前缀以过滤目标定位 应用程序注释方法。处理邮件后, 匹配的前缀将从目标中删除,以形成 查找路径。这意味着注释不应包含目的地 前缀。1