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 过滤器,然后它就可以工作了。希望对你有帮助
在我的 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 过滤器,然后它就可以工作了。希望对你有帮助