docs: 同步全部项目文档至 Phase 2a 完成状态
- 架构设计文档:更新模块职责表(ws/contact 标记已完成)、路由架构、分层图 - 总体系统设计:联系人 API 扩展至 17 个、管理端 API 补充在线监控和好友管理 - Phase 2a 设计文档:状态标记为已完成 - API README:导航表 + 目录结构 + 联系人模块错误码 - 开发规范:新增 WebSocket 事件联动规范(第 8 节) - 项目规则:新增「文档自动同步规则」,每个 Task 完成后自动检查更新文档 Made-with: Cursor
This commit is contained in:
@@ -40,10 +40,10 @@ EchoChat 采用 **「精简单体 + 媒体微服务」** 架构,核心思想
|
||||
│ │ auth │ │ im │ │ meeting │ │ admin │ │
|
||||
│ │ 认证鉴权 │ │ 即时通讯 │ │ 会议控制 │ │ 后台管理 │ │
|
||||
│ └──────────┘ └──────────┘ └──────────┘ └──────────────┘ │
|
||||
│ ┌──────────┐ ┌──────────┐ │
|
||||
│ │ contact │ │ notify │ 每个模块: Controller → │
|
||||
│ │ 联系人 │ │ 通知 │ Service → DAO → Model │
|
||||
│ └──────────┘ └──────────┘ │
|
||||
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
||||
│ │ contact │ │ notify │ │ ws │ 每个模块: │
|
||||
│ │ 联系人 │ │ 通知 │ │ WebSocket│ Controller → │
|
||||
│ └──────────┘ └──────────┘ └──────────┘ Service → DAO │
|
||||
│ │ │ │ │
|
||||
│ ┌────┴──────────────┴──────────────┴──────┐ │
|
||||
│ │ 公共基础设施层 (pkg/) │ │
|
||||
@@ -86,14 +86,15 @@ EchoChat 采用 **「精简单体 + 媒体微服务」** 架构,核心思想
|
||||
|
||||
系统的 **"大脑"**,处理所有业务逻辑。
|
||||
|
||||
| 模块 | 职责 |
|
||||
|------|------|
|
||||
| auth | 用户注册/登录、有状态 JWT Token 管理(Redis 存储)、RBAC 角色权限(当前粗粒度 3 角色,预留细粒度权限点扩展) |
|
||||
| im | 即时消息收发、会话管理、消息存储 |
|
||||
| contact | 好友关系管理、好友分组 |
|
||||
| meeting | 会议创建/管理、信令转发、mediasoup 资源编排 |
|
||||
| notify | 通知推送、会议邀请、好友申请通知 |
|
||||
| admin | 后台管理(用户管理、会议监控、系统配置) |
|
||||
| 模块 | 职责 | 状态 |
|
||||
|------|------|------|
|
||||
| auth | 用户注册/登录、有状态 JWT Token 管理(Redis 存储 + client_type 隔离)、RBAC 角色权限(level 等级体系:1=超管, 10=管理员, 100=用户) | ✅ Phase 1 |
|
||||
| ws | WebSocket 连接管理(Hub/Client/PubSub)、在线状态管理(Redis SET + TTL 心跳续期) | ✅ Phase 2a |
|
||||
| contact | 好友关系管理(申请/接受/拒绝/删除/拉黑)、好友分组(CRUD + 移动)、用户搜索、好友推荐 | ✅ Phase 2a |
|
||||
| im | 即时消息收发、会话管理、消息存储 | 🔜 Phase 2b |
|
||||
| meeting | 会议创建/管理、信令转发、mediasoup 资源编排 | 📋 后续 |
|
||||
| notify | 通知推送、会议邀请、好友申请通知 | 📋 后续 |
|
||||
| admin | 后台管理(用户管理 + 角色权限管理 + 在线监控 + 好友关系管理、会议监控、系统配置) | ✅ Phase 1/2a |
|
||||
|
||||
**不负责的事情:** 不处理 RTP 媒体数据、不参与音视频转发、不做 WebRTC 协议协商。
|
||||
|
||||
@@ -109,8 +110,9 @@ router/
|
||||
|
||||
app/auth/router.go ← auth 模块的具体路由定义
|
||||
app/admin/router.go ← admin 模块的具体路由定义
|
||||
app/im/router.go ← im 模块的具体路由定义(后续阶段)
|
||||
app/contact/router.go ← contact 模块的具体路由定义(后续阶段)
|
||||
app/contact/router.go ← contact 模块的具体路由定义(Phase 2a 已实现)
|
||||
app/ws/router.go ← WebSocket 模块的路由定义(Phase 2a 已实现)
|
||||
app/im/router.go ← im 模块的具体路由定义(Phase 2b 实现)
|
||||
app/meeting/router.go ← meeting 模块的具体路由定义(后续阶段)
|
||||
```
|
||||
|
||||
@@ -122,8 +124,9 @@ main.go
|
||||
├── engine.GET("/health", ...) // 健康检查
|
||||
├── auth.RegisterRoutes(engine, ...) // /api/v1/auth/*
|
||||
├── admin.RegisterRoutes(engine, ...) // /api/v1/admin/*
|
||||
├── im.RegisterRoutes(engine, ...) // /api/v1/im/* (后续)
|
||||
├── contact.RegisterRoutes(engine, ...) // /api/v1/contact/* (后续)
|
||||
├── contact.RegisterRoutes(engine, ...) // /api/v1/contacts/* ✅ Phase 2a
|
||||
├── ws.RegisterRoutes(engine, ...) // /ws ✅ Phase 2a
|
||||
├── im.RegisterRoutes(engine, ...) // /api/v1/im/* (Phase 2b)
|
||||
└── meeting.RegisterRoutes(engine, ...) // /api/v1/meeting/* (后续)
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user