Skip to content

私聊、群聊、频道消息 ​

这篇解决什么 ​

三类消息落哪张表、发送和拉取走哪组接口。读完能对上 im_private_message / im_group_message / im_channel_message,以及用户只能发 normal=true 的类型。

默认端口 48080。先开模块见 IM 功能设计。实时推送见 IM WebSocket。

示意图:三张消息表分开。频道没有 C 端发送接口。

从哪改 ​

名称说明仓库路径
私聊@RequestMapping("/im/message/private")ruoyi-office/yudao-module-im/.../message/ImPrivateMessageController.java
群聊/im/message/groupImGroupMessageController
频道拉取GET /im/channel/message/pullImChannelMessageController
已读游标/im/conversation-readImConversationReadController
运营审计/im/manager/message/*manager/message/

用户页:views/im/home/pages/conversation/。运营页:views/im/manager/message/。

私聊:POST /send、GET /pull、PUT /read、DELETE /recall、GET /list。clientMessageId 做发送幂等。文本会先过敏感词。

群聊同样有 send / pull / read / recall。receiverUserIds 空=全员可见,有值=定向。未读靠 im_conversation_read,不靠消息行上的未读字段。

频道 C 端只有 GET /pull 和 PUT /read,没有 send。运营推素材。

ImConversationTypeEnum:1 私聊,2 群聊,3 频道。ImMessageStatusEnum:0 正常,2 已撤回(-1 仅客户端发送中)。回执 ImMessageReceiptStatusEnum:0 不需要,1 待完成,2 已完成。

用户可发类型:101 文本、102 图片、103 语音、104 视频、105 文件、107 合并、108 名片、115 表情。频道素材 125。撤回信号 2101。已读开关见 yudao.im.message:private-read-enabled / group-read-enabled 默认开;撤回窗口默认 5 分钟;pull 默认最近 30 天、单次最多 1000。

字段 ​

名称说明仓库路径
clientMessageId客户端幂等键ImPrivateMessageDO / ImGroupMessageDO
senderId / receiverId私聊两端ImPrivateMessageDO
groupId群消息ImGroupMessageDO
type / content类型 + JSON同上
status / receiptStatus撤回、回执私聊;群聊也有回执列
maxReadMessageId会话已读位置ImConversationReadDO

不是一张会话消息表

私聊、群聊、频道各一张。im_conversation_read 只存游标,不存正文。

信号类型不要当用户发送入口

READ / RECEIPT / 多数好友群事件 normal=false,不计入未读。前端发送框只允许 normal=true。

按本仓库 DO 生成的 ER。

配置与操作 ​

用户页在 views/im/home/pages/conversation/。私聊 POST /im/message/private/send,群聊 POST /im/message/group/send,带 clientMessageId 做幂等。频道 C 端只有 GET /pull 和 PUT /read,没有 send。YAML yudao.im.message:private-read-enabled / group-read-enabled 默认开;撤回窗口默认 5 分钟;pull 默认最近 30 天、单次最多 1000。

发送后落对应三张消息表。未读靠 im_conversation_read 的 maxReadMessageId。用户可发 101 文本等到 115 表情;normal=false 的信号不要当前端发送入口。文本会先过敏感词。

相关篇 ​

联系我们

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

微信咨询二维码

微信咨询

17156169080

添加时备注「RuoYi Office」

在线体验商业版