跳到主要内容

IM 即时通讯系统 - 功能与 API 接口简版文档

📊 项目概述

IM 即时通讯系统是一个功能完整的即时通讯平台,支持用户之间的实时消息传递、群组聊天、好友管理等功能。本文档基于实际实现的功能,提供了简洁明了的功能说明和 API 接口规范。

🎯 系统功能概览

已完成功能

1. 基础架构

  • ✅ WebSocket 连接管理 (预连接、强制下线)
  • ✅ 模块化架构 (DDD 分层)
  • ✅ FreeSql ORM 集成
  • ✅ FreeIM WebSocket 框架集成

2. 消息系统

  • ✅ 消息发送 (私聊、群聊、多种消息类型支持)
  • ✅ 消息接收 (WebSocket 推送)
  • ✅ 历史消息查询 (分页支持,可包含群聊已读回执信息)
  • ✅ 消息撤回 (2 分钟内可撤回)
  • ✅ 消息已读/未读管理 (私聊已读回执、群聊已读记录)
  • ✅ 消息搜索 (多维度筛选和关键字高亮)
  • ✅ 离线消息处理 (@提醒、消息拦截)

3. 群组管理

  • ✅ 群组 CRUD 操作
  • ✅ 群成员管理 (申请入群、审核、邀请、踢出)
  • ✅ 群权限管理 (群主、管理员、成员角色)
  • ✅ 群设置 (群昵称、消息免打扰等)
  • ✅ 群禁言功能 (个人禁言、全员禁言)
  • ✅ 群公告管理

4. 好友系统

  • ✅ 好友关系管理 (添加、删除、备注、分组)
  • ✅ 好友申请流程 (发送、接受、拒绝)
  • ✅ 好友状态检查

5. 用户管理

  • ✅ 用户搜索 (按用户名/昵称)
  • ✅ 用户数据同步 (Identity → IM 事件驱动同步)

6. 在线状态管理

  • ✅ 用户在线状态 (在线、离线、忙碌、离开、隐身)
  • ✅ 心跳机制 (更新活跃时间)
  • ✅ 状态变更推送

7. 会话管理

  • ✅ 会话 CRUD 操作
  • ✅ 会话置顶/取消置顶

8. 黑名单管理

  • ✅ 添加/移除黑名单
  • ✅ 双向检查机制
  • ✅ 消息拦截

📡 API 接口规范

1. 聊天消息接口

路由前缀: /api/im/chat-messages

方法路径说明状态
POST/发送消息
GET/history获取历史消息(支持包含群聊已读回执信息)
POST/{id}/recall撤回消息
POST/mark-read标记已读
GET/unread-count获取未读数统计
GET/{id}/read-receipts获取已读列表(群聊)
POST/search搜索消息
GET/offline-messages获取离线消息列表
POST/offline-messages/pull手动拉取离线消息
POST/offline-messages/ack确认消息已接收
DELETE/offline-messages/delivered清理已推送的离线消息
GET/offline-messages/stats获取离线消息统计

2. 好友管理接口

路由前缀: /api/im/friends

方法路径说明状态
POST/request发送好友申请
POST/accept/{id}接受好友申请
POST/reject拒绝好友申请
DELETE/{userId}删除好友
GET/获取好友列表
GET/requests获取好友申请列表
PUT/更新好友信息(备注/分组)
GET/check/{userId}检查好友状态
GET/check-status/{userId}检查好友状态
POST/block/{userId}拉黑好友
POST/unblock/{userId}取消拉黑
GET/group/{groupName}按分组查询好友
GET/groups获取所有分组名称

3. 群组管理接口

路由前缀: /api/im/chat-groups

方法路径说明状态
GET/获取群组列表
GET/{id}获取群组详情
POST/创建群组
PUT/{id}更新群组
DELETE/{id}删除群组(群主)
POST/join申请加入群组
POST/audit审核入群申请
GET/{id}/requests获取入群申请列表
GET/{id}/members获取群成员列表
POST/invite邀请入群
POST/kick踢出成员
POST/{id}/leave退出群组
POST/set-admin设置/取消管理员
POST/transfer-owner转让群主
PUT/settings更新群设置
PUT/nickname修改群昵称
POST/mute消息免打扰
POST/enter进入群聊频道(WebSocket)
POST/exit离开群聊频道(WebSocket)
POST/mute-member禁言成员
POST/unmute-member解除禁言
POST/all-mute全员禁言
POST/search-members搜索群成员

4. 在线状态接口

路由前缀: /api/im/user-presence

方法路径说明状态
GET/{userId}获取用户在线状态
POST/设置当前用户在线状态
POST/batch批量获取用户在线状态
GET/friends获取好友在线状态列表
POST/heartbeat心跳更新(活跃时间)

5. 用户管理接口

路由前缀: /api/im/users

方法路径说明状态
GET/{id}获取用户详情
GET/search搜索用户

6. 会话管理接口

路由前缀: /api/im/recent-contacts

方法路径说明状态
GET/获取会话列表
GET/{id}获取会话详情
POST/创建会话
PUT/{id}更新会话
DELETE/{id}删除会话
POST/set-top置顶/取消置顶会话

7. 群公告接口

路由前缀: /api/im/chat-groups/{groupId}/announcements

方法路径说明状态
GET/获取群公告列表
GET/{id}获取公告详情
POST/发布群公告
PUT/{id}更新公告
DELETE/{id}删除公告
PUT/{id}/pin置顶/取消置顶公告

8. 黑名单接口

路由前缀: /api/im/blacklist

方法路径说明状态
POST/添加黑名单
DELETE/{blockedUserId}移除黑名单
GET/查询黑名单列表
GET/check/{targetUserId}检查是否在黑名单中

9. WebSocket 接口

路由前缀: /api/im/ws

方法路径说明状态
POST/pre-connect获取websocket分区
GET/offline强制下线

🔐 安全机制

已实现的安全检查

  • ✅ JWT 身份认证
  • ✅ 好友关系验证(私聊)
  • ✅ 黑名单双向检查
  • ✅ 群成员验证
  • ✅ 群禁言检查(个人/全员)
  • ✅ 群角色权限(群主/管理员/成员)
  • ✅ 消息撤回权限验证

📈 系统完成度统计

总计:

  • ✅ 已实现: 80+个核心接口
  • 📈 核心功能完成度: 约90%

最后更新: 2025年11月26日