- 新增 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
58 lines
1.2 KiB
YAML
58 lines
1.2 KiB
YAML
# ============================================================
|
||
# EchoChat Docker 容器内配置
|
||
# 与 config.dev.yaml 的区别:数据库和 Redis 地址使用 Docker 服务名
|
||
# ============================================================
|
||
|
||
server:
|
||
port: 8085
|
||
mode: debug
|
||
|
||
database:
|
||
host: postgres
|
||
port: 5432
|
||
user: echochat
|
||
password: echochat_dev_2026
|
||
dbname: echochat
|
||
sslmode: disable
|
||
max_idle_conns: 10
|
||
max_open_conns: 100
|
||
|
||
redis:
|
||
host: redis
|
||
port: 6379
|
||
password: ""
|
||
db: 0
|
||
|
||
jwt:
|
||
secret: echochat-dev-jwt-secret-2026-please-change-in-production
|
||
access_expire_min: 120
|
||
refresh_expire_day: 7
|
||
issuer: echochat
|
||
|
||
log:
|
||
level: debug
|
||
format: text
|
||
output_path: stdout
|
||
file:
|
||
enable: true
|
||
dir: logs
|
||
max_size: 50
|
||
max_backups: 10
|
||
max_age: 30
|
||
compress: false
|
||
|
||
minio:
|
||
endpoint: "minio:9000"
|
||
access_key: "echochat"
|
||
secret_key: "echochat123456"
|
||
bucket: "echochat"
|
||
use_ssl: false
|
||
|
||
# Node media-server 接入配置(Phase 2e-2 Task 7)
|
||
media_server:
|
||
base_url: "http://media-server:3300" # Docker 网络内服务名
|
||
internal_token: "dev-internal-token-change-me" # 生产环境通过 ECHOCHAT_MEDIA_SERVER_INTERNAL_TOKEN 覆盖
|
||
timeout_ms: 5000
|
||
close_timeout_ms: 2000
|
||
close_retry: 2
|