spring 启动 websocket api 404 未找到

spring boot websocket api 404 not found

在我的 spring 启动应用程序中,当我尝试连接到 ws 端点时,客户端出现 404 错误。

客户端代码

let wsUri = "ws://localhost:8080/chat"
let websocket = new WebSocket(wsUri);

spring 配置

package coffee.web;

import org.springframework.context.annotation.Bean;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;

@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {

   @Override
   public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
       registry.addHandler(chatServer(), "/chat");
   }

   @Bean
   public ChatServer chatServer() {
       return new ChatServer();
   }
}

因为请求是由调度程序 servlet 处理的,就像普通的 http 请求一样。所以你需要在 WebSocketConfig class

中添加 @Controller 注解
@Configuration
@EnableWebSocket
@Controller
public class WebSocketConfig implements WebSocketConfigurer

我遇到了 404 错误,然后我添加了控制器,然后我得到了 403,就像你得到的那样,403 就像访问限制,所以我已经删除了那个端点的 CSRF 过滤器,然后它就可以工作了。希望对你有帮助