Discuss / Java / 我的URL与指定的WebSocketHandler关联了,但访问却出现404

我的URL与指定的WebSocketHandler关联了,但访问却出现404

Topic source

https://gitee.com/myproject_ee/spring-web-mvc-filter

$(function () {
    var ws = new WebSocket('ws://' + location.host + '/chat');
    //....
});
// WebSocket
@BeanWebSocketConfigurer createWebSocketConfigurer(@Autowired ChatHandler chatHandler, @Autowired ChatInterceptor chatInterceptor) {
   return new WebSocketConfigurer() {
      @Override      
      public void registerWebSocketHandlers(WebSocketHandlerRegistry webSocketHandlerRegistry) {
         webSocketHandlerRegistry.addHandler(chatHandler, "/chat").addInterceptors(chatInterceptor);      
      }
   };
}
WebSocket connection to 'ws://localhost:8080/chat' failed: Error during WebSocket handshake: Unexpected response code: 404

读完这篇文章有2处不懂的问题

这段代码,仅调用了父类 HttpSessionHandshakeInterceptor 的构造方法,是怎么做到从 HttpSession 复制属性到 WebSocketSession ?源码跟迷路了。。。

@Component
public class ChatHandshakeInterceptor extends HttpSessionHandshakeInterceptor {
    public ChatHandshakeInterceptor() {
        // 指定从HttpSession复制属性到WebSocketSession:
        super(List.of(UserController.KEY_USER));
    }
}

另一个问题是:浏览器请求一个WebSocket连接后,如果成功建立连接,WebSocketSession 接口的实例从哪取得?装配的实例是哪个类?

public void afterConnectionEstablished(WebSocketSession session) throws Exception { ...

Edcus

#3 Created at ... [Delete] [Delete and Lock User]

AppConfig添加@EnableWebSocket注解解决404问题


  • 1

Reply