diff --git a/server/src/lib.rs b/server/src/lib.rs index ee91dc9..88f4cad 100644 --- a/server/src/lib.rs +++ b/server/src/lib.rs @@ -368,11 +368,13 @@ pub async fn run_server(state: Arc) -> Result<(), Box(&buf[..len]) { - if gate_wait.get("type").and_then(|t| t.as_str()) == Some("gate_wait") { + } else if let Ok(json_payload) = serde_json::from_slice::(&buf[..len]) { + if json_payload.get("type").and_then(|t| t.as_str()) == Some("ping") { + let _ = socket.send_to(b"pong", addr).await; + } else if json_payload.get("type").and_then(|t| t.as_str()) == Some("gate_wait") { if let (Some(action), Some(target)) = ( - gate_wait.get("action").and_then(|a| a.as_str()), - gate_wait.get("target").and_then(|t| t.as_str()) + json_payload.get("action").and_then(|a| a.as_str()), + json_payload.get("target").and_then(|t| t.as_str()) ) { subscribers.insert((action.to_string(), target.to_string()), addr); }