跳到主要内容

IM 系统定位与发展规划

本文档基于 FreeKit.IM 项目当前实现,对标飞书(Feishu)即时通讯(IM)功能,梳理已实现、缺失及待实现的特性,并给出实现优先级与路线图。

1. 功能对比概览

功能模块飞书 (Feishu) 支持FreeKit.IM 当前实现差距描述
实时消息✅ 文本、图片、文件、视频、音频、表情、富文本、卡片等✅ 文本、图片(待 UI)、文件(待实现)缺少富文本、卡片、音视频等多媒体支持
消息回复 (Thread)✅ 支持回复、子回复、聚合展示✅ 基础 ParentId 支持缺少聚合查询接口、子回复 UI
消息表情回应 (Reactions)✅ Emoji 表情回应、删除✅ 已实现后端 API 与实体前端 UI 待实现
消息撤回✅ 2 分钟内撤回✅ 已实现
已读回执✅ 私聊已读、群聊已读列表✅ 已实现
消息搜索✅ 多维度关键字搜索✅ 已实现
离线消息✅ 拉取、确认、统计✅ 已实现
群组管理✅ 创建、成员管理、公告、禁言、全员禁言、群昵称、免打扰、搜索成员✅ 已实现大部分功能缺少群公告 UI
群公告✅ 发布、更新、置顶、删除✅ 已实现后端 API前端 UI 待实现
好友管理✅ 添加、删除、备注、分组、拉黑、状态检查✅ 已实现
文件/图片上传✅ 支持上传并在消息中引用❌ 未实现需要文件存储服务与前端上传组件
消息表情 (Emoji) 发送✅ 支持发送 Emoji 消息❌ 未实现需要前端 UI 与后端 API(已实现 Reactions)
消息置顶 (Pin)✅ 置顶重要消息❌ 未实现需要 PinnedMessage 实体与 API
富文本 (Post)✅ 支持标题、图片、段落混排❌ 未实现需要 MsgType.Post 结构与渲染逻辑
加急/Buzz✅ 加急提醒、优先展示❌ 未实现需要标记字段与推送机制
安全机制✅ JWT、权限校验、加密传输✅ 已实现主要安全检查

2. 已完成的关键里程碑

  • 消息发送/接收、历史、撤回、已读
  • 群组 CRUD、成员管理、禁言、免打扰
  • 好友管理、黑名单、在线状态
  • 离线消息处理
  • 消息表情回应 (Reactions) 后端 ✅ (2025‑11‑29)

3. 待实现的核心功能(按优先级)

优先级功能说明预计实现工作量
P0文件/图片上传提供统一文件服务、前端上传组件、消息引用中等(后端存储 + 前端 UI)
P0消息表情 (Emoji) 发送前端表情面板、调用 Reactions API低(UI + 调用)
P1消息置顶 (Pin)PinnedMessage 实体、API、前端标记中等
P1富文本 (Post)定义 JSON 结构、解析渲染、编辑器高(涉及编辑器)
P2加急/Buzz消息标记字段、推送优先级、UI 高亮中等
P2群公告 UI前端展示、编辑、置顶功能
P3多媒体消息 (音视频)文件存储、播放组件、API 扩展

4. 实现路线图 (Next 3 Months)

时间里程碑
第 1 周完成文件/图片上传后端接口 (/api/im/files) 并集成到前端上传组件
第 2‑3 周实现 Emoji 表情发送 UI,调用 ChatMessageReactionController,完成前端交互
第 4‑5 周设计并实现 PinnedMessage 实体、对应 API (/api/im/chat-messages/{id}/pin)
第 6‑8 周定义 MsgType.Post JSON schema,后端解析并提供渲染数据;前端实现富文本编辑器(可使用开源编辑器)
第 9‑10 周加急/Buzz 标记字段与推送逻辑,实现 UI 高亮与提醒
第 11‑12 周完善群公告 UI,支持置顶、编辑、删除;进行整体功能回归测试

5. 风险与依赖

  • 文件存储:需要可靠的对象存储(如 OSS、MinIO),当前项目暂无集成。
  • 前端编辑器:富文本实现依赖第三方编辑器,需评估兼容性与样式统一。
  • 实时推送:消息置顶、加急等需要在 WebSocket 推送层做额外标记,需在 ImHelper 中扩展。

6. 结论

FreeKit.IM 已实现核心即时通讯功能,距离飞书的完整特性还有若干关键点。通过上述路线图的分阶段实现,预计在 3 个月 内可以覆盖大部分高价值功能(文件上传、表情发送、消息置顶、富文本),为后续的高级特性(加急、音视频)奠定基础。


文档最后更新: 2025‑11‑29