无效的 SockJS 路径 /topic/mytopic - 需要有 3 个路径段

San*_*ndy 7 websocket spring-boot spring-websocket

我有一个 Spring Boot 应用程序,其中添加了 websocket 功能,以便 websocket 客户端可以发出订阅请求以订阅 websocket 主题之外的消息。

在我的控制器的方法中,我添加了一个注释 @SubscribeMapping("/topic/mytopic")。

我的 WebSocketConfig 如下所示:

@Configuration
@ComponentScan
@EnableWebSocket
public class WebSocketConfig extends WebSocketMessageBrokerConfiguratioSupport{
   @Override
   public void registerStompEndpoints(StompEndpointRegistry registry){
     registry.addEndpoint("/my-app")
             .setAllowedOrigin("*")
             .withSockJS();
   }

   @Override
   public void configureMessageBroker(MessageBrokerRegistry registry){
     registry.enableSimpleBroker("/topic/");
     registry.setApplicationDestinationPrefixes("/");
 }
}
Run Code Online (Sandbox Code Playgroud)

当我进入浏览器并输入:

http://localhost:<MY_PORT>/my-app
Run Code Online (Sandbox Code Playgroud)

然后我收到回复“欢迎使用 SockJS!”。这表明Websocket服务器确实已启动并正在运行。

但令我惊讶的是,当我使用 Postman 的 Websocket 功能并尝试使用以下网址进行 Websocket 订阅时:

ws://localhost:<MY_PORT>/my-app/topic/mytopic 
Run Code Online (Sandbox Code Playgroud)

此错误记录在控制台中:无效的 SockJS 路径 /topic/mytopic - 需要有 3 个路径段

并且连接会自动断开。

我在这里做错了什么吗?请指教。