feat(phase2e-2): 前端 mediasoup-client 集成 + Pinia meeting Store(Task 9)
- frontend/src/api/meeting.js:12 个 REST 接口封装,统一 unwrap envelope.data - frontend/src/services/websocket.js:新增 sendWithAck(Promise 化 + 超时 + 序列号) - frontend/src/utils/mediasoup-client.js:MediaEngine 包装 Device/Transport/Producer/Consumer - frontend/src/store/meeting.js:Pinia 会议状态机,桥接 14 个 WS 事件 + cleanupStaleMeetings - frontend/src/constants/meeting.js:状态枚举 + 事件名集中管理 - frontend/src/pages/meeting/debug.vue:临时调试页(H5 原生 video/audio DOM 绕过 uni 组件限制) - backend:meeting.consume.resume WS 事件 + create/join 响应透传 router_id + rtp_capabilities - 文档:frontend/meeting.md、websocket.md、CURRENT_STATUS、plan 全部同步 Task 9 落地 Made-with: Cursor
This commit is contained in:
@@ -114,6 +114,7 @@ const (
|
||||
MeetingWSEventTransportConnect = "meeting.transport.connect" // C→S→Node:Transport DTLS 握手
|
||||
MeetingWSEventProduceStart = "meeting.produce.start" // C→S→Node:创建 Producer(广播 producer.new)
|
||||
MeetingWSEventConsumeStart = "meeting.consume.start" // C→S→Node:订阅远端 Producer,创建本地 Consumer
|
||||
MeetingWSEventConsumeResume = "meeting.consume.resume" // C→S→Node:Consumer 订阅后由前端 track 挂载就绪再 resume(防止首帧丢失;Task 9 引入)
|
||||
MeetingWSEventProducerClose = "meeting.producer.close" // C→S→Node:关闭自己的 Producer(推流停止)
|
||||
|
||||
// ====== 补充事件(非 §6.3 核心 11 事件,但业务必须)======
|
||||
@@ -130,5 +131,6 @@ var MeetingWSClientEvents = []string{
|
||||
MeetingWSEventTransportConnect,
|
||||
MeetingWSEventProduceStart,
|
||||
MeetingWSEventConsumeStart,
|
||||
MeetingWSEventConsumeResume,
|
||||
MeetingWSEventProducerClose,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user