变更日志
本页记录每个版本的主要变更。格式遵循 Keep a Changelog。
v0.2.0 — Refactor
Latest
Breaking Changes
- Go module 重命名为
github.com/LessUp/aurora-signal config.Validate()签名变更为([]string, error),返回警告列表room.Manager.CreateRoom()现接受可选maxParticipants参数,在锁内原子设置
Architecture
internal/httpapi/server.go拆分为:server.go— Server 结构体、构造函数、生命周期middleware.go— recovery / requestID / CORS / securityHeaders / accessLoghandler_health.go— healthz / readyz / ice-servershandler_room.go— rooms CRUD / join-token
ws.go重构:提取wsSession结构体,消除goto,统一routeMessage路由逻辑,拆分 Redis 订阅/退订为独立方法
Features
- 角色权限 — viewer 不可发起 offer/answer/trickle;仅 moderator 可远程 mute/unmute 他人
- Envelope version — 所有路由消息自动填充
version: "v1" - MessageLatency —
routeMessage记录处理延迟到 Prometheus histogram - ParticipantsGauge — 新增
signal_participantsPrometheus gauge,Join/Leave 时自动增减 - 优雅关闭 WS — Server.Shutdown 时向所有活跃 WebSocket 连接发送 CloseGoingAway 帧
Code Quality
- 全局
interface{}→any statusRecorder实现http.Hijacker,修复 WebSocket 升级通过 accessLog 中间件时的 bad handshake bug- 删除未使用类型
SDP/Trickle/Chat
Tests
- 新增 6 个集成测试:AdminKeyAuth / RoomFull / ViewerCannotSignal / ModeratorCanMuteOthers / ConcurrentJoinLeave / EnvelopeVersionPopulated
v0.1.0 — 初始发布
新增
- REST API — 房间创建/查询、Join Token 签发、ICE 配置下发、健康探针与 Prometheus 指标
- WebSocket 信令 —
join/offer/answer/trickle/chat/leave/mute/unmute - 安全 — JWT 认证、Admin Key、速率限制、安全响应头
- 可观测性 — Prometheus 指标(
signal_namespace)、结构化 JSON 日志、Request-ID 追踪 - 多实例扩展 — Redis Pub/Sub 消息转发
- 容器化 — Dockerfile(Distroless)与 docker-compose(Signal + Redis + coturn)
- Web Demo — 断线退避重连、连接状态指示、Enter 发送聊天
- 测试 — 单元测试与 k6 压测脚本