feat(meeting): Task 15 UI 打磨 + 主持人四件套 + 媒体层稳定性回归修复
- Task 15 UI:6 项原创特色(说话者流光 / 柔性网格 / 自视频浮窗 / 静音氛围色 / 入会滑入 / NetworkBadge 3 条波浪)+ 说话者双源探测(RTP audioLevel + WebAudio RMS)+ 主持人四件套(静音/开麦/转让/踢出) - 新增 SelfVideoFloat 浮窗组件 + 4 份 design-system 页面文档(home / preview / room / invite) - 媒体回归补丁(手工联调触发): * 后端 signal_service 在 OnRoomJoin 追加 pushExistingRoomState → 向新加入者补发历史 producers + 历史成员 audio/video 状态 * 新增 Redis Hash memberStateKey 持久化成员 audio/video enabled,OnMemberStateChanged 落盘、cleanupUserResources 清理 * 前端 _broadcastSelfState 在本地音视频开关末尾同步 state.changed;_afterJoined 先 getRoom 再 room.join 修复后入者成员状态时序;_onMemberStateChanged 占位兜底 * _cleanupRemoteProducer 改为按 producerId 精准清理(修复 "关音频误关视频") * _onRoomEnded + createAndEnter/joinAndEnter 强化 reset(修复重入会看不到自己画面) * mediasoup-client ensureSend/RecvTransport 引入 in-flight Promise 锁防并发重复建连 - 文档同步:CURRENT_STATUS.md / Task 15 plan / phase2e-2 implementation plan Made-with: Cursor
This commit is contained in:
@@ -1,11 +1,40 @@
|
||||
import { defineConfig } from 'vite'
|
||||
import uni from '@dcloudio/vite-plugin-uni'
|
||||
import basicSsl from '@vitejs/plugin-basic-ssl'
|
||||
|
||||
// https://vitejs.dev/config/
|
||||
//
|
||||
// HTTPS 说明(WebRTC 必需):
|
||||
// 浏览器仅在 secure context 下开放 navigator.mediaDevices(getUserMedia 等 API),
|
||||
// 手机通过局域网 IP http://192.168.x.x:5173 访问时 mediaDevices 会是 undefined。
|
||||
// 因此 dev 默认开启自签 HTTPS,同时把 /api 与 /ws 走同源代理转回后端 HTTP,
|
||||
// 这样浏览器只与 vite HTTPS 通信,前端代码无需关心后端是否 TLS。
|
||||
//
|
||||
// 代理目标由环境变量 VITE_DEV_BACKEND 控制,默认 http://localhost:8085,
|
||||
// 若后端跑在其他主机/端口(如 docker 主机)可自行覆盖。
|
||||
const BACKEND = process.env.VITE_DEV_BACKEND || 'http://localhost:8085'
|
||||
const BACKEND_WS = BACKEND.replace(/^http/, 'ws')
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [
|
||||
uni(),
|
||||
basicSsl(),
|
||||
],
|
||||
server: {
|
||||
host: '0.0.0.0',
|
||||
https: true,
|
||||
proxy: {
|
||||
'/api': {
|
||||
target: BACKEND,
|
||||
changeOrigin: true,
|
||||
secure: false,
|
||||
},
|
||||
'/ws': {
|
||||
target: BACKEND_WS,
|
||||
changeOrigin: true,
|
||||
ws: true,
|
||||
secure: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user