| | |
| | | mod tokio_utils; |
| | | mod pipe_server; |
| | | mod ws_client; |
| | | use crate::ws_client::LATEST_WS_DATA; |
| | | |
| | | |
| | | |
| | | use std::sync::Mutex; |
| | | use tauri::async_runtime::spawn; |
| | |
| | | // Learn more about Tauri commands at https://tauri.app/develop/calling-rust/ |
| | | use crate::pipe_server::start_pipe_server; |
| | | |
| | | #[tauri::command] |
| | | fn get_latest_ws_data() -> Option<String> { |
| | | LATEST_WS_DATA.lock().unwrap().clone() |
| | | } |
| | | #[tauri::command] |
| | | fn greet(name: &str) -> String { |
| | | format!("Hello, {}! You've been greeted from Rust!", name) |
| | |
| | | .map_err(|e| e.to_string()) |
| | | } |
| | | |
| | | |
| | | |
| | | // #[cfg_attr(mobile, tauri::mobile_entry_point)] |
| | | // pub fn run() { |
| | | // tauri::Builder::default() |
| | |
| | | backend_task: false, |
| | | })) |
| | | // Add a command we can use to check |
| | | .invoke_handler(tauri::generate_handler![greet, set_complete, start_pipe_server_command, send_pipe_message]) |
| | | .invoke_handler(tauri::generate_handler![greet, set_complete, start_pipe_server_command, send_pipe_message, get_latest_ws_data]) |
| | | // Use the setup hook to execute setup related tasks |
| | | // Runs before the main loop, so no windows are yet created |
| | | .setup(|app| { |
| | | // 启动 WebSocket 客户端(异步任务) |
| | | ws_client::start_ws_client(); |
| | | // Spawn setup as a non-blocking task so the windows can be |
| | | // created and ran while it executes |
| | | spawn(setup(app.handle().clone())); |