feat(phase2e-2): 落地 HTTPMediaOrchestrator 打通 Go↔Node 媒体链路(Task 7)
- 新增 MediaServerConfig + config.{dev,docker}.yaml 的 media_server 段
(base_url / internal_token / timeout_ms / close_timeout_ms / close_retry)
- 新建 HTTPMediaOrchestrator(8 方法 + sync.Map 缓存 roomCode→routerID
+ 关闭类指数退避重试 200/500ms + ErrMediaResourceNotFound/ErrMediaServerError
两类错误)实现 MediaOrchestrator 接口
- wire 绑定由 NoopMediaOrchestrator 切换到 HTTPMediaOrchestrator;
MeetingService / MeetingSignalService 调用侧零改动
- E2E 脚本 docs/verify/meeting_t7_verify.mjs 证明 16/16 PASS:
健康检查/错token 401/REST 创房加入/WS room.join/真实 mediasoup
transport.create(ICE/DTLS 指纹均由 Node 返回非占位)/404 幂等关 producer
/host 结束会议触发 CloseRouter
- 同步更新 13 份文档:CURRENT_STATUS / implementation.plan / design
变更记录 / project-context / api 导览 / api websocket / api frontend meeting
/ system-architecture / media-server README / 顶层 README 等
- go build ./... 全绿
Made-with: Cursor
This commit is contained in:
@@ -94,7 +94,7 @@ EchoChat 采用 **「精简单体 + 媒体微服务」** 架构,核心思想
|
||||
| im | 即时消息收发(单聊)、会话管理、消息存储、撤回、搜索、离线推送 | ✅ Phase 2b |
|
||||
| group | 群聊管理(建群/加入/退出/角色/禁言/@提醒/群公告/入群审批) | ✅ Phase 2c |
|
||||
| file | 文件上传(MinIO 对象存储 + 通用上传 API) | ✅ Phase 2c |
|
||||
| meeting | 会议创建/管理、信令转发、mediasoup 资源编排、会议内聊天、主持人控制 | 📋 Phase 2e-2 设计阶段(专用设计:`docs/plans/2026-04-21-phase2e-2-design.md`) |
|
||||
| meeting | 会议创建/管理、WebSocket 信令转发、mediasoup 资源编排(Go→Node HTTP)、会议内聊天、主持人控制 | 🚧 Phase 2e-2 代码开发中(Task 0-7 ✅:12 REST + 13 WS 事件 + HTTPMediaOrchestrator 真实 Router/Transport/Producer/Consumer 落地;Task 8-16 待执行);专用设计:`docs/plans/2026-04-21-phase2e-2-design.md` |
|
||||
| notify | 统一通知中心、好友/群聊事件 + 系统广播推送、11 种类型枚举、跨模块 Pusher 接口注入 | ✅ Phase 2e-1(10 种落地 + 2 种预留 `meeting_invite` / `meeting_reminder`) |
|
||||
| admin | 后台管理(用户管理 + 角色权限管理 + 在线监控 + 好友关系管理 + 群聊管理、会议监控、系统配置) | ✅ Phase 1/2a/2c |
|
||||
|
||||
@@ -242,7 +242,7 @@ mediasoup C++ SFU 的 **"遥控器"**,不懂业务、不懂用户、只懂媒
|
||||
```yaml
|
||||
services:
|
||||
go-service: # Go 后端 → :8085 ✅ 已实现(多阶段构建 Dockerfile)
|
||||
media-server: # mediasoup Node → :3300 + :40000-40199/udp 📋 Phase 2e-2 Task 1/14(TypeScript + Fastify + mediasoup v3)
|
||||
media-server: # mediasoup Node → :3300 + :40000-40199/udp 🚧 Phase 2e-2 Task 0-2 ✅(TypeScript + Fastify + mediasoup v3,9 REST API + observer-close 自清理),Task 7 ✅ Go 侧 HTTPMediaOrchestrator 已接入 `/internal/v1/*`
|
||||
coturn: # TURN 服务(可选) → :3478/:5349 📋 Phase 2e-2 公网部署 profile=public
|
||||
postgres: # PostgreSQL 17 → :5432 ✅ 已实现
|
||||
redis: # Redis 7 → :6379 ✅ 已实现
|
||||
|
||||
Reference in New Issue
Block a user