视频会议

This commit is contained in:
duoaohui
2026-05-23 22:10:44 +08:00
parent 1a14b7ce70
commit 724bbcd309

View File

@@ -525,16 +525,19 @@ const hangup = async () => {
leaving.value = true
try {
// 云律视频咨询:发起人(小程序端用户)在 CreateRoomForInternal 时被加成 host
// 用户挂机即视为整个咨询结束,直接 endMeeting 让另一端(律师 iframe)也收到 room.ended 退出。
// 非 host 兜底走 leave避免异常会议状态下挂机被卡住。
if (meetingStore.isHost) {
// 用户挂机 = 咨询结束,无条件 endMeeting 让律师 iframe 收到 room.ended 自动退出。
// 不依赖 meetingStore.isHosthost_id/userId 偶发类型不一致导致误判 false 只走 leave
// 表现就是"用户端挂机后 PC 还停在会议里")。
console.log('[CloudLawVideoCall] hangup -> endMeeting', {
roomCode: meetingStore.currentRoom?.room_code,
hostId: meetingStore.currentRoom?.host_id,
myUserId: userStore.userInfo?.id || userStore.userInfo?.user_id,
isHostComputed: meetingStore.isHost
})
await meetingStore.endMeeting()
} else {
await meetingStore.leave()
}
} catch (err) {
console.warn('[CloudLawVideoCall] hangup failed', err)
// endMeeting 失败时兜底 leave至少自己先退出
console.warn('[CloudLawVideoCall] endMeeting failed, fallback leave', err)
// endMeeting 失败时兜底 leave至少自己先退出,避免卡死
try { await meetingStore.leave() } catch (leaveErr) { console.warn('[CloudLawVideoCall] fallback leave failed', leaveErr) }
} finally {
ended.value = true