后端框架 · RuoYi-Vue-Plus框架功能扩展功能
WebSocket功能
版本
-
= 5.1.0
配置说明
默认关闭(推送建议优先使用 SSE)。

参数说明:
enabled:是否启用path:应用路径allowedOrigins:访问源地址
注意:关闭 WebSocket 时需同步关闭前端开关,否则前端启动会报错。

补充说明:
- 后端配置位于
application.yml的websocket节点。 - 前端开关位于
.env.*中的VITE_APP_WEBSOCKET,默认前端会在src/layout/index.vue中初始化连接。 - 当前项目默认同时保留 SSE 与 WebSocket 能力,但推送场景优先推荐使用 SSE,只有确实需要双向通信或长连接自定义协议时再开启 WebSocket。
- 当前前端封装里已经带了自动重连和心跳包逻辑。
前端连接示例
ws://后端ip:端口/resource/websocket?clientid=import.meta.env.VITE_APP_CLIENT_ID&Authorization=Bearer <token>由于 JS 不支持自定义请求头,这里使用参数传输。若前端支持 Header,请优先使用 Header。
Header 示例:
headers: {
Authorization: "Bearer " + getToken(),
clientid: import.meta.env.VITE_APP_CLIENT_ID
}连接成功后,登录态获取方式与框架内其他接口一致。
补充说明:
- 浏览器原生 WebSocket 不方便统一附带自定义 Header,所以当前项目默认使用 URL 参数方式携带
Authorization与clientid。 - 如果部署在 HTTPS 下,需要使用
wss://协议。 allowedOrigins要和实际访问域名保持一致,生产环境不建议长期使用全放开的*。
消息发送
WebSocketUtils.sendMessage:单机消息(特殊需求)WebSocketUtils.subscribeMessage:订阅分布式消息(默认已订阅)WebSocketUtils.publishMessage:发布分布式消息(推荐)WebSocketUtils.publishAll:群发消息
补充说明:
- 和 SSE 一样,集群环境优先使用
publishMessage/publishAll,不要只依赖单机sendMessage。