功能开启
进度说明:
- 管理后台,请使用 https://gitee.com/yudaocode/yudao-ui-admin-vue3 (opens new window) 仓库的
master分支 - 后端项目,请使用 https://gitee.com/zhijiantianya/yudao-cloud (opens new window) 仓库的
master(JDK8) 或master-jdk17(JDK17/21) 分支
IM 即时通讯系统,后端由 yudao-module-im 服务实现,前端由 yudao-ui-admin-vue3 的 im 目录实现。
只需要启动 yudao-module-im 服务,就可以使用 IM 即时通讯功能。步骤如下:
- 第一步,导入 IM 即时通讯系统的 SQL 数据库脚本
- 第二步,确认 WebSocket 配置
- 第三步,启动服务,确认功能是否生效
- 第四步,配置音视频通话(可选)
# 1.1 第一步,导入 SQL
点击 im.sql.zip (opens new window) 下载附件,解压出 SQL 文件,然后导入到数据库中。
友情提示:↑↑↑ im.sql 是可以点击下载的! ↑↑↑
重要说明:该 SQL 仅芋道星球成员可使用和商用,否则视为侵权(索赔 100 万,永久追溯)【下载即视为同意】。
导入后,以 im_ 作为前缀的表,就是 IM 模块的业务表,一共 16 张,按业务模块分为:
| 子前缀 | 模块 | 表数量 |
|---|---|---|
im_private_message / im_group_message | 消息中心 | 2 |
im_friend* | 好友关系 | 2 |
im_group* | 群组管理 | 3 |
im_channel* | 频道推送 | 3 |
im_rtc* | 音视频通话 | 2 |
im_face* / im_sensitive_word | 其他 | 4 |
注意:
IM SQL 除了 im_ 业务表,还需要导入菜单、字典、定时任务等初始化数据。否则前端可能出现菜单不可见、字典无法翻译、音视频通话定时清理任务不存在等问题。
# 1.2 第二步,确认 WebSocket 配置
IM 消息实时推送依赖 WebSocket。你需要先阅读 《WebSocket 实时通信》 文档。
微服务架构下,需要确认 yudao-module-infra-server 已开启 WebSocket,并且 yudao-gateway 已配置 /infra/ws 的 WebSocket 路由。
本地单机体验时,sender-type 使用 local 即可。集群部署时,建议将 sender-type 改成 redis、rocketmq、kafka 或 rabbitmq,确保多实例之间可以转发 WebSocket 消息。
# 1.3 第三步,启动服务
① 运行该服务的 ImServerApplication 启动类,看到 "Started ImServerApplication in 5.963 seconds (JVM running for 6.253)" 说明开启成功。
② 然后,访问前端的 [IM 即时通讯] 菜单,确认功能是否生效。右上角的消息窗口,也可以进入聊天界面。如下图所示:
| 聊天界面 | 聊天管理 |
|---|---|
![]() | ![]() |
至此,我们就成功开启了 IM 即时通讯的功能 🙂
# 1.4 第四步,配置音视频通话(可选)
IM 的文字、图片、文件、语音、视频消息不需要额外部署 LiveKit。只有使用「语音通话」「视频通话」「共享屏幕」时,才需要配置 LiveKit。
# 1.4.1 不使用音视频通话
如果暂时不使用音视频通话,可以在 yudao-module-im 服务的 application-local.yaml 中关闭 RTC:
yudao:
im:
rtc:
enabled: false
关闭后,聊天、好友、群组、频道、表情、敏感词等功能仍可正常使用。
# 1.4.2 使用音视频通话
如果需要使用音视频通话,操作如下:
① 本地开发时,可以参考 script/livekit-poc/docker-compose.yml 启动 LiveKit Server:
cd script/livekit-poc
docker compose up -d
你也可以参考 livekit/livekit (opens new window) 部署 LiveKit Server。
② 修改 yudao-module-im 服务的 application-local.yaml 配置:
yudao:
im:
rtc:
enabled: true
livekit-url: ws://127.0.0.1:7880
api-key: devkey
api-secret: secret-poc-key-min-32-chars-required-here
生产环境请将 livekit-url 改成可被浏览器访问的 wss:// 地址,并将 api-key、api-secret 改成 LiveKit Server 的真实配置。
③ 配置 LiveKit Webhook 回调地址:
http://后端地址/admin-api/im/livekit/webhook

