added server comm

This commit is contained in:
2025-09-21 01:40:32 +02:00
parent 0fb3ccd506
commit 314bf8c327
2 changed files with 60 additions and 0 deletions

View File

@@ -153,3 +153,56 @@ pub async fn send_metrics(
Ok(())
}
pub async fn listening_to_server(base_url: &str){
loop {
// Replace with your server endpoint
let resp = reqwest::get("http://my-server.local/api/message")
.await;
if let Ok(resp) = resp {
if let Ok(msg) = resp.json::<ServerMessage>().await {
handle_message(msg).await;
} else {
eprintln!("Failed to parse message");
}
} else {
eprintln!("Failed to reach server");
}
// Poll every 5 seconds (or use WebSocket for real-time)
sleep(Duration::from_secs(5)).await;
}
}
fn handle_message(msg: ServerMessage) {
match msg {
ServerMessage::Restart => restart_container(),
ServerMessage::Log(data) => log_data(&data),
ServerMessage::Update(ver) => update_client(&ver),
ServerMessage::Unknown => eprintln!("Unknown message"),
}
}
fn restart_container() {
println!("Restarting...");
std::process::exit(1); // let Docker restart it
}
fn log_data(data: &str) {
println!("Log: {}", data);
}
fn update_client(version: &str) {
println!("Updating to version {}", version);
}
// Example parser (pretend server sends simple strings)
fn parse_message(raw: &str) -> ServerMessage {
match raw {
"restart" => ServerMessage::Restart,
msg if msg.starts_with("log:") => ServerMessage::Log(msg[4..].to_string()),
msg if msg.starts_with("update:") => ServerMessage::Update(msg[7..].to_string()),
_ => ServerMessage::Unknown,
}
}

View File

@@ -72,3 +72,10 @@ pub struct HardwareDto {
pub ram_size: f64,
pub ip_address: String,
}
pub enum ServerMessage {
Restart,
Log(String),
Update(String),
Unknown,
}