tasks_message_system.md 2.6 KB

统一消息系统开发任务清单

1. 基础设施与数据库准备

  • MinIO 服务部署
    • 编写 docker-compose.yml 增加 MinIO 服务配置
    • 配置 MinIO 的 Access Key 和 Secret Key
    • 创建默认 Bucket (messages) 并设置访问策略
  • 数据库变更
    • 执行 V3__add_message_system.sql 脚本
    • 验证 messagesuser_devices 表结构是否正确
    • 验证 app_user_mapping 表是否存在(用于第三方账号映射)

2. 后端核心模块开发 (Backend)

  • MinIO 客户端封装
    • 实现 backend/app/core/minio.py 工具类
    • 实现文件上传方法 (put_object)
    • 实现预签名 URL 生成方法 (get_presigned_url)
  • WebSocket 服务实现
    • 实现 ConnectionManager 类 (管理连接/断开/广播)
    • 实现 /api/v1/ws/messages 端点
    • 实现 JWT Token 鉴权逻辑 (get_user_from_token)
  • 消息模型与 Schema 定义
    • 更新 backend/app/models/message.py
    • 定义 Pydantic Schema (MessageCreate, MessageResponse)
    • 处理多媒体内容 (content_type) 的 JSON 序列化/反序列化

3. API 接口开发 (API Endpoints)

  • 消息发送接口 (POST /messages)
    • 实现用户发送私信逻辑 (校验接收者)
    • 实现应用发送通知逻辑 (校验 App 签名)
    • 实现 app_user_iduser_id 的自动映射查找
    • 集成 WebSocket 实时推送 (异步任务)
  • 消息查询接口
    • 实现会话列表聚合接口 (GET /conversations)
    • 实现历史消息分页接口 (GET /history/{id})
    • 实现未读数统计与标记已读接口
  • 文件上传与 SSO
    • 实现附件上传接口 (POST /upload)
    • 实现 SSO 跳转中转接口 (GET /auth/sso/jump)

4. 客户端 SDK/前端集成 (Frontend)

  • WebSocket 客户端封装
    • 实现断线重连机制
    • 实现心跳保活 (Ping/Pong)
  • UI 组件开发
    • 开发会话列表组件 (展示未读红点、最后一条消息)
    • 开发聊天窗口组件 (支持 Text/Image/File 渲染)
  • 业务逻辑对接
    • 对接文件上传流程 (上传 -> 拿 Key -> 发消息)
    • 处理通知点击跳转 (拦截 URL -> 自动登录)

5. 测试与文档

  • 单元测试
    • 编写 API 接口测试用例 (Pytest)
    • 模拟 WebSocket 连接测试
  • 集成测试
    • 验证第三方应用通过 API 发送通知的全流程
    • 验证 MinIO 文件上传下载流程