yangjie #47

Merged
yangqiang merged 49 commits from yangjie into master 2025-01-24 13:43:09 +08:00
1 changed files with 29 additions and 0 deletions
Showing only changes of commit 2164fcfde4 - Show all commits

View File

@ -194,6 +194,7 @@ const Meeting: React.FC = () => {
const [isShare, setIsShare] = useState<any>(null) const [isShare, setIsShare] = useState<any>(null)
const [isSharePopConfirm, setIsSharePopConfirm] = useState(false) const [isSharePopConfirm, setIsSharePopConfirm] = useState(false)
const [_isNetworkDisconnected, setIsNetworkDisconnected] = useState(false) const [_isNetworkDisconnected, setIsNetworkDisconnected] = useState(false)
const [isAgoraDisconnected, setIsAgoraDisconnected] = useState(false)
const [isShareUser, setIsShareUser] = useState<any>(null) const [isShareUser, setIsShareUser] = useState<any>(null)
const [currentLookUserStatus, setCurrentLookUserStatus] = useState<0 | 1 | 2 | 3 | 4>(1) const [currentLookUserStatus, setCurrentLookUserStatus] = useState<0 | 1 | 2 | 3 | 4>(1)
const [commonlyChatList] = useState<any>([ const [commonlyChatList] = useState<any>([
@ -216,6 +217,7 @@ const Meeting: React.FC = () => {
const msgTips = '您不是管理员或发言人,无法开启此功能!' const msgTips = '您不是管理员或发言人,无法开启此功能!'
const channel = new BroadcastChannel('meeting_channel'); const channel = new BroadcastChannel('meeting_channel');
let storeDevice: any; let storeDevice: any;
let agoraTime: NodeJS.Timeout;
useEffect(() => { useEffect(() => {
window.electron.createChildWindow('hide') window.electron.createChildWindow('hide')
let time: NodeJS.Timeout; let time: NodeJS.Timeout;
@ -600,6 +602,30 @@ const Meeting: React.FC = () => {
} }
}, [currentVideoId, isShare]); }, [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(() => { useEffect(() => {
window.electron.onSignalr(async (_e: any, item: any) => { window.electron.onSignalr(async (_e: any, item: any) => {
const setting = JSON.parse(storage.getItem('setting') as string) const setting = JSON.parse(storage.getItem('setting') as string)
@ -1261,10 +1287,12 @@ const Meeting: React.FC = () => {
} else if (state === 3) { } else if (state === 3) {
meetingDisconnectedRef.current.changeModal(false) meetingDisconnectedRef.current.changeModal(false)
setIsAgoraDisconnected(false)
} }
}, },
onConnectionLost: () => { onConnectionLost: () => {
meetingDisconnectedRef.current.changeModal(true) meetingDisconnectedRef.current.changeModal(true)
setIsAgoraDisconnected(true)
setIsScreenCapture(bool => { setIsScreenCapture(bool => {
if (bool) { if (bool) {
setIsNetworkDisconnected(true) setIsNetworkDisconnected(true)
@ -1979,6 +2007,7 @@ const Meeting: React.FC = () => {
if (e.value == true) { if (e.value == true) {
message.success('网络已连接。') message.success('网络已连接。')
meetingDisconnectedRef.current.changeModal(false) meetingDisconnectedRef.current.changeModal(false)
setIsAgoraDisconnected(false)
async function setUserStatus(res: any) { async function setUserStatus(res: any) {
let userItem = res.find((item: any) => item.uid === userInfo.uid) let userItem = res.find((item: any) => item.uid === userInfo.uid)
await window.electron.onInvoke('joinChannel', { await window.electron.onInvoke('joinChannel', {