按網上說的, 什么配置 注解都齊了. 但還是不斷報這個錯.
網上spring整合websocket有兩種,
一種是加入對javax中Websocket注解的處理;
另一種是spring的一套框架.
@Configuration @EnableWebSocket public class Config implements WebSocketConfigurer{ /** * 注入一個ServerEndpointExporter,該Bean會自動注冊使用@ServerEndpoint注解申明的websocket endpoint */ @Bean public TextWebscokect getHandle() { return new TextWebscokect(); } @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(getHandle(), "/textws","/websokect/textws").setAllowedOrigins("*"); } }
我本來用的第一種, 但是出問題, 不斷嘗試中換成了第二種, 事后想來, 兩種應該都能用.
至於問題出現的原因: 這個框架是前后端分離的, 后端端口是8082, 前端vue頁面應該訪問node.js服務器, 是3000.
我一直在頁面向8082端口訪問, 但就報標題的錯....弄了一上午, 發現是Websocket的url應該訪問3000的端口, 然后node轉發后端, 不然就報錯....
this.ws=new KsyWebSocket("test","ws://localhost:3000/api/textws") //這是我寫的一個WebSocket前端類, 整合了一下, 這是正確url....