适用框架版本:v5.1.0 及以上
为了实现高效的 WebSocket 功能,RuoYi-Vue-Plus 提供了灵活的配置选项。以下是配置文件的基本说明:
--- # WebSocket 配置
websocket:
# 是否启用 WebSocket,关闭时需确保前端同步关闭
enabled: true
# WebSocket 连接路径
path: /resource/websocket
# 允许的来源地址,用于跨域设置
allowedOrigins: '*'
enabled
:控制 WebSocket 功能的开关。如果关闭此功能,前端也需要同步关闭,否则前端初始化时会发生错误。path
:定义 WebSocket 连接的访问路径。allowedOrigins
:设置允许的来源地址,用于跨域访问。默认允许所有来源。注意:关闭 WebSocket 功能时,必须确保前端的 WebSocket 相关配置同步关闭,否则会引发前端启动报错。
在开发环境中,可以通过 .env.development
文件关闭 WebSocket,在正式环境中则需要修改 .env
文件。
# WebSocket 开关
VITE_APP_WEBSOCKET=false
前端可以通过以下方式建立与 WebSocket 的连接:
ws://后端IP:端口/resource/websocket?clientid=import.meta.env.VITE_APP_CLIENT_ID&Authorization=Bearer eyJ0eXAiO......
由于 JavaScript 不能直接传输请求头,建议将
Authorization
和clientid
参数作为 URL 参数传输。如果支持请求头传输,可以使用请求头方式传递认证信息。
传输请求头方式示例如下:
headers: {
Authorization: "Bearer " + getToken(),
clientid: import.meta.env.VITE_APP_CLIENT_ID
}
Authorization
:此参数为访问令牌,需要用户登录后获取。成功连接 WebSocket 后,可以与框架中其他获取登录用户的方式一致处理用户认证和权限。RuoYi-Vue-Plus 提供了一系列与 WebSocket 交互的工具类和方法,方便开发者根据需求灵活使用:
WebSocketUtils.sendMessage
:发送单个消息给指定用户(适用于特殊需求)。WebSocketUtils.subscribeMessage
:订阅特定消息,框架在初始化时已自动进行订阅。WebSocketUtils.publishMessage
:发布消息给多个用户,推荐使用此方法来根据资源自动匹配接收用户。WebSocketUtils.publishAll
:广播消息给所有已连接的用户。这些功能为开发者提供了丰富的消息推送选项,无论是单播、组播还是广播,都可以根据业务需求选择合适的消息推送方式。
RuoYi-Vue-Plus
的 WebSocket
模块提供了强大的实时通信功能,结合灵活的配置与简单的集成方式,适用于各种需要实时推送数据的场景。在使用时,确保前后端 WebSocket
配置的一致性,以避免不必要的启动错误。
powered by kaifamiao