From e20136a5ab7f20705f85ca6d1a580431c1888172 Mon Sep 17 00:00:00 2001 From: mofeng-git Date: Fri, 27 Mar 2026 10:44:59 +0800 Subject: [PATCH] =?UTF-8?q?fix(web):=20=E4=BF=AE=E5=A4=8D=20WebRTC=20?= =?UTF-8?q?=E9=A6=96=E5=B8=A7=E7=8A=B6=E6=80=81=E4=B8=8E=E8=A7=86=E9=A2=91?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E5=88=A4=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/web/ws.rs | 8 ++++---- web/src/views/ConsoleView.vue | 4 ++++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/web/ws.rs b/src/web/ws.rs index 6cefcac8..a4077d33 100644 --- a/src/web/ws.rs +++ b/src/web/ws.rs @@ -71,13 +71,13 @@ fn rebuild_event_tasks( let mut device_info_task_added = false; for topic in topics { if is_device_info_topic(&topic) && !device_info_task_added { + let state = state.clone(); let mut rx = state.subscribe_device_info(); let event_tx = event_tx.clone(); event_tasks.push(tokio::spawn(async move { - if let Some(snapshot) = rx.borrow().clone() { - if event_tx.send(BusMessage::Event(snapshot)).is_err() { - return; - } + let snapshot = state.get_device_info().await; + if event_tx.send(BusMessage::Event(snapshot)).is_err() { + return; } loop { diff --git a/web/src/views/ConsoleView.vue b/web/src/views/ConsoleView.vue index 7b06e061..9098fd72 100644 --- a/web/src/views/ConsoleView.vue +++ b/web/src/views/ConsoleView.vue @@ -174,6 +174,10 @@ const videoStatus = computed<'connected' | 'connecting' | 'disconnected' | 'erro if (videoError.value) return 'error' if (videoLoading.value) return 'connecting' + if (videoMode.value !== 'mjpeg') { + if (webrtc.isConnecting.value) return 'connecting' + if (webrtc.isConnected.value) return 'connected' + } if (systemStore.stream?.online) return 'connected' return 'disconnected' })