项目场景:
在若依项目中需要做一个在线沟通的聊天功能,所以在若依的脚手架中集成了websocket。
问题描述
在若依中集成websocket后进行通信,但是在开启websocket的时候会报错“WebSocket connection to 'ws://localhost' failed:”。找了很多解决方法都无法解决,包括:修改vue.config.js中的配置,修改跨域的配置问题。
let socketUrl = "ws://localhost:8080/imserver/" + username;
if (socket != null) {
socket.close();
socket = null;
}
// 开启一个websocket服务
socket = new WebSocket(socketUrl);
原因分析:
使用若依的基本都会对他的源码有所了解,若依对访问后端接口的限制是很多的,除了一些特殊访问,所有请求都需要鉴权访问,如下代码摘自若依前后端分离“ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java”
/**
* anyRequest | 匹配所有请求路径
* access | SpringEl表达式结果为true时