mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2026-06-14 19:51:58 +08:00
feat(web): 改为通过 WebSocket 推送 ttyd 状态并清理轮询与冗余接口
This commit is contained in:
18
src/state.rs
18
src/state.rs
@@ -7,9 +7,9 @@ use crate::auth::{SessionStore, UserStore};
|
||||
use crate::config::ConfigStore;
|
||||
use crate::events::{
|
||||
AtxDeviceInfo, AudioDeviceInfo, EventBus, HidDeviceInfo, MsdDeviceInfo, SystemEvent,
|
||||
VideoDeviceInfo,
|
||||
TtydDeviceInfo, VideoDeviceInfo,
|
||||
};
|
||||
use crate::extensions::ExtensionManager;
|
||||
use crate::extensions::{ExtensionId, ExtensionManager};
|
||||
use crate::hid::HidController;
|
||||
use crate::msd::MsdController;
|
||||
use crate::otg::OtgService;
|
||||
@@ -157,12 +157,13 @@ impl AppState {
|
||||
/// Uses tokio::join! to collect all device info in parallel for better performance.
|
||||
pub async fn get_device_info(&self) -> SystemEvent {
|
||||
// Collect all device info in parallel
|
||||
let (video, hid, msd, atx, audio) = tokio::join!(
|
||||
let (video, hid, msd, atx, audio, ttyd) = tokio::join!(
|
||||
self.collect_video_info(),
|
||||
self.collect_hid_info(),
|
||||
self.collect_msd_info(),
|
||||
self.collect_atx_info(),
|
||||
self.collect_audio_info(),
|
||||
self.collect_ttyd_info(),
|
||||
);
|
||||
|
||||
SystemEvent::DeviceInfo {
|
||||
@@ -171,6 +172,7 @@ impl AppState {
|
||||
msd,
|
||||
atx,
|
||||
audio,
|
||||
ttyd,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -262,4 +264,14 @@ impl AppState {
|
||||
error: status.error,
|
||||
})
|
||||
}
|
||||
|
||||
/// Collect ttyd status information
|
||||
async fn collect_ttyd_info(&self) -> TtydDeviceInfo {
|
||||
let status = self.extensions.status(ExtensionId::Ttyd).await;
|
||||
|
||||
TtydDeviceInfo {
|
||||
available: self.extensions.check_available(ExtensionId::Ttyd),
|
||||
running: status.is_running(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user