按网上说的, 什么配置 注解都齐了. 但还是不断报这个错.
网上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....
Websocket发消息出现Servlet.service() for servlet [dispatcherServlet] in context with path [] th