This commit is contained in:
yj 2025-01-22 17:58:22 +08:00
parent c8dc0e3276
commit 2164fcfde4
1 changed files with 29 additions and 0 deletions

View File

@ -194,6 +194,7 @@ const Meeting: React.FC = () => {
const [isShare, setIsShare] = useState<any>(null)
const [isSharePopConfirm, setIsSharePopConfirm] = useState(false)
const [_isNetworkDisconnected, setIsNetworkDisconnected] = useState(false)
const [isAgoraDisconnected, setIsAgoraDisconnected] = useState(false)
const [isShareUser, setIsShareUser] = useState<any>(null)
const [currentLookUserStatus, setCurrentLookUserStatus] = useState<0 | 1 | 2 | 3 | 4>(1)
const [commonlyChatList] = useState<any>([
@ -216,6 +217,7 @@ const Meeting: React.FC = () => {
const msgTips = '您不是管理员或发言人,无法开启此功能!'
const channel = new BroadcastChannel('meeting_channel');
let storeDevice: any;
let agoraTime: NodeJS.Timeout;
useEffect(() => {
window.electron.createChildWindow('hide')
let time: NodeJS.Timeout;
@ -600,6 +602,30 @@ const Meeting: React.FC = () => {
}
}, [currentVideoId, isShare]);
useEffect(() => {
if (isAgoraDisconnected) {
agoraTime = setTimeout(() => {
confirm({
keyboard: false,
title: '提示',
icon: <ExclamationCircleFilled />,
content: `重连失败,请退出房间重试!`,
centered: true,
okText: '退出',
wrapClassName: 'hideCancelText',
cancelText: '',
async onOk() {
leaveChannel()
},
})
clearTimeout(agoraTime)
}, 1000 * 60);
} else {
clearTimeout(agoraTime)
}
return () => clearTimeout(agoraTime);
}, [isAgoraDisconnected]);
useEffect(() => {
window.electron.onSignalr(async (_e: any, item: any) => {
const setting = JSON.parse(storage.getItem('setting') as string)
@ -1261,10 +1287,12 @@ const Meeting: React.FC = () => {
} else if (state === 3) {
meetingDisconnectedRef.current.changeModal(false)
setIsAgoraDisconnected(false)
}
},
onConnectionLost: () => {
meetingDisconnectedRef.current.changeModal(true)
setIsAgoraDisconnected(true)
setIsScreenCapture(bool => {
if (bool) {
setIsNetworkDisconnected(true)
@ -1979,6 +2007,7 @@ const Meeting: React.FC = () => {
if (e.value == true) {
message.success('网络已连接。')
meetingDisconnectedRef.current.changeModal(false)
setIsAgoraDisconnected(false)
async function setUserStatus(res: any) {
let userItem = res.find((item: any) => item.uid === userInfo.uid)
await window.electron.onInvoke('joinChannel', {