springboot3 + websocket 在idea本地启动后,连接websocket报错,提示路径不存在?但是部署到服务器Tomcat上却可以连接;连接路径没问题,怀疑是springboot3内置Tomcat导致启动websocket有问题


springboot3 + websocket 在idea本地启动后,连接websocket报错,提示路径不存在?但是部署到服务器Tomcat上却可以连接;连接路径没问题,怀疑是springboot3内置Tomcat导致启动websocket有问题


以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:
根据您提供的两张截图,我们可以分析和解决您在Spring Boot 3环境中使用WebSocket时遇到的连接问题。
从截图【c2655bda-cc2d-4fbf-b2ea-0187685b7df9_a972fdf287f845888a460814d4055f22.png】中可以看到,WebSocket服务器端的类名为Websocketserver,使用了@ServerEndpoint注解,路径为"/websocket/{uid}"。这里需要注意以下几点:
@ServerEndpoint的路径与客户端尝试连接的URL匹配。{uid}是一个路径变量,需要在客户端URL中提供具体的UID值。从截图【678bdecb-aa69-453d-8dac-eae7b438a9a6_634f305fa72645cdb41ce2bcbc461fa9.png】中可以看到,客户端尝试连接的URL为ws://127.0.0.1:8080/websocket/20220328007。请确认以下几点:
20220328007是一个有效的UID,且服务器端能够处理该UID。NoResourceFoundException,这表明服务器无法找到请求的资源。这可能是由于路径不匹配或资源确实不存在。根据截图,以下是WebSocket服务器端的简化代码示例:
import org.springframework.stereotype.Component;
import org.springframework.web.socket.server.support.HttpSessionHandshakeInterceptor;
@Component
@ServerEndpoint(value = "/websocket/{uid}")
public class WebsocketServer {
private Session session;
private String uid;
// 其他方法和逻辑...
}
确保您的实现与此类似,并且正确处理了Session和uid。
@ServerEndpoint路径与客户端URL匹配。希望这些信息能帮助您解决问题。如果需要进一步的帮助,请提供更多的错误日志或代码实现细节。