视频会议
This commit is contained in:
@@ -525,16 +525,19 @@ const hangup = async () => {
|
||||
leaving.value = true
|
||||
try {
|
||||
// 云律视频咨询:发起人(小程序端用户)在 CreateRoomForInternal 时被加成 host,
|
||||
// 用户挂机即视为整个咨询结束,直接 endMeeting 让另一端(律师 iframe)也收到 room.ended 退出。
|
||||
// 非 host 兜底走 leave,避免异常会议状态下挂机被卡住。
|
||||
if (meetingStore.isHost) {
|
||||
await meetingStore.endMeeting()
|
||||
} else {
|
||||
await meetingStore.leave()
|
||||
}
|
||||
// 用户挂机 = 咨询结束,无条件 endMeeting 让律师 iframe 收到 room.ended 自动退出。
|
||||
// 不依赖 meetingStore.isHost(host_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()
|
||||
} 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
|
||||
|
||||
Reference in New Issue
Block a user