added server comm
This commit is contained in:
@@ -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,
|
||||
}
|
||||
}
|
@@ -72,3 +72,10 @@ pub struct HardwareDto {
|
||||
pub ram_size: f64,
|
||||
pub ip_address: String,
|
||||
}
|
||||
|
||||
pub enum ServerMessage {
|
||||
Restart,
|
||||
Log(String),
|
||||
Update(String),
|
||||
Unknown,
|
||||
}
|
Reference in New Issue
Block a user