From 3be76a9374d2c50e9fb21230732f0793f34ffeb7 Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Wed, 25 Sep 2024 09:38:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/page/Meeting/index.tsx | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index 44015ff..1073263 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -152,7 +152,6 @@ const Meeting: React.FC = () => { text: '网络质量极好。' }) const [networkOther, setNetworkOther] = useState({}) - const [isNetwork, setIsNetwork] = useState(true) const [isComputerAudio, setIsComputerAudio] = useState(true) const [isFluencyPriority, setIsFluencyPriority] = useState(false) const [open, setOpen] = useState(false) @@ -753,10 +752,7 @@ const Meeting: React.FC = () => { setCurrentEffective(0) break; default: - setIsNetwork(res => { - setCurrentEffective(res ? 4 : 0) - return res - }) + setCurrentEffective(storage.getItem('reconnect') ? 4 : 0) break; } } @@ -765,12 +761,9 @@ const Meeting: React.FC = () => { setNetworkOther(stats) }, onConnectionStateChanged: async (_connection: RtcConnection, stateNumber: ConnectionStateType, reason: ConnectionChangedReasonType) => { - if (stateNumber === 4 && reason === 2) { - setIsNetwork(false) - message.error('网络断开,请检查网络') - } - if (stateNumber === 4 && reason === 14) { - setIsNetwork(false) + const reconnectingCode = [2, 16, 11, 13, 14, 12] + if (stateNumber === 4 && reconnectingCode.indexOf(reason) >= 0) { + storage.setItem('reconnect', false) message.error('网络断开,请检查网络') } }, @@ -1302,19 +1295,24 @@ const Meeting: React.FC = () => { break; case 'reconnect': if (e.value == true) { - storage.setItem('reconnect', false) await onInvoke('joinChannel', { roomNum: state.channelId, enableMicr: !footerList[0][0].active, enableCamera: !footerList[0][1].active }) - setIsNetwork(true) message.success('网络已连接。') - DeleteRoomManager({ - roomId: state.roomId, - roomNum: state.channelId, - userId: userInfo.uid + setRoomUserList((res: any) => { + let userItem = res.find((item: any) => item.uid === userInfo.uid) + if (userItem.isRoomManager) { + DeleteRoomManager({ + roomId: state.roomId, + roomNum: state.channelId, + userId: userInfo.uid + }) + } + return res }) + } break; }