Skip to content

IM 功能设计 ​

这篇解决什么 ​

完整 IM 怎么分层:频道 / 好友 / 群是关系主数据,三类消息是业务。读完先对模块边界和表,以及它和 OA 轻聊不是同一套会话。

默认端口 48080,前缀 /admin-api。工程启动见 快速开始。

业务流程及架构 ​

IM 自己不算流程引擎,没有 processDefinitionKey。配置 yudao.office.im-mode 只改顶栏 / 审批找人 / 移动端底栏联动。两套菜单不会互斥隐藏。

示意图:默认 im-mode: oa。改成 im 且 classpath 有 ImProperties 才走完整 IM。切换不迁历史会话。

名称说明仓库路径
频道im_channel / im_channel_material频道、频道素材
好友im_friend / im_friend_request好友关系、好友申请
群im_group / im_group_member群组、群成员
消息im_private_message / im_group_message / im_channel_message私聊、群聊、频道消息
表情 / 敏感词im_face_* / im_sensitive_word表情、敏感词
WebSocket / RTC推送、通话IM WebSocket、音视频通话
移动IM 搬家移动端 IM

轻聊和完整 IM 不是同一套表

views/oa/im 是企业内轻聊。本指南后面几篇写的是 yudao-module-im。两套会话不能互相看见。

菜单在不等于通道已切

im-mode 不自动停另一套入口。实施要在菜单管理里自己停 6030 或 7500。没引入模块会回落 oa,并去掉 7500 整棵菜单。

数据表 ER ​

主干表按已有篇和 DO 画出。表情包、RTC 通话、已读游标不进这张图。

示意图:群和频道挂各自的消息表。好友在 im_friend,私聊在 im_private_message,两张表没有外键。

前后端代码 ​

名称说明仓库路径
模块好友、群、频道、消息、RTCruoyi-office/yudao-module-im/
单体引入yudao-module-im-serverruoyi-office/yudao-server/pom.xml
通道OfficeImModeServiceyudao-module-system/.../office/core/OfficeImModeService.java
配置yudao.office.im-modeapplication.yaml
用户端会话页ruoyi-office-vben/apps/web-antd/src/views/im/home/
运营端管理页views/im/manager/
轻聊OA 即时通讯views/oa/im/

官方菜单:完整 IM 根 7500。OA 即时通讯(轻聊)是 6030。OA 版默认走轻聊菜单。

运行参数在 yudao.im:好友自动通过、群人数上限、表情上限、已读开关、LiveKit。YAML 没写就用 ImProperties 默认值。微服务可单独起 im-server(模块配置端口 48093),单体日常不用。缺表时全局异常会提示导入 IM 结构。

IM 会话

本系统截图:完整 IM 会话页。im-mode 切到 im 后顶栏走这一套。

好友关系

本系统截图:好友关系。互加两行落 im_friend。

功能开启 ​

单体 -P boot 时已经依赖 IM 实现,没有单独的「IM 开关」页。启动 YudaoServerApplication 即可。

客户默认包 ruoyi-office-db/dump/latest/ 带 im_friend、im_group、im_channel、im_face_*、im_sensitive_word 等表。以后改表走 ruoyi-office-db/update/。

默认 im-mode: oa。要完整 IM 再改成 im,并在角色里勾选 7500。

示意图:先表和菜单。再决定顶栏走哪条通道。

旧文 IM 功能开启 已并入本页,请收藏本篇。

相关篇 ​

联系我们

获取报价、演示和二开方案

微信咨询二维码

微信咨询

17156169080

添加时备注「RuoYi Office」

在线体验商业版