From a14a989691e8e4e73489bf20b1e9c79809141ac4 Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Wed, 18 Feb 2026 22:55:58 +0100 Subject: [PATCH] Fixed pinging --- examples/client.rs | 3 ++- examples/server.rs | 12 +----------- src/session.rs | 5 +++-- 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/examples/client.rs b/examples/client.rs index 14ed2ab..112bf1e 100644 --- a/examples/client.rs +++ b/examples/client.rs @@ -25,9 +25,10 @@ async fn main() -> session_rs::Result<()> { // Send a few messages for i in 0..5 { + println!("sending"); let msg = serde_json::json!({ "hello": i }); session.send(&msg).await?; - tokio::time::sleep(std::time::Duration::from_secs(1000)).await; + tokio::time::sleep(std::time::Duration::from_secs(1)).await; } session.close().await?; diff --git a/examples/server.rs b/examples/server.rs index f57d7ab..234e722 100644 --- a/examples/server.rs +++ b/examples/server.rs @@ -22,17 +22,7 @@ async fn main() -> session_rs::Result<()> { } }; - // Simple ping loop - let ping_session = Arc::clone(&session); - tokio::spawn(async move { - let mut interval = tokio::time::interval(std::time::Duration::from_secs(15)); - loop { - interval.tick().await; - if ping_session.send_ping().await.is_err() { - break; - } - } - }); + session.start_ping_loop(); // Read loop loop { diff --git a/src/session.rs b/src/session.rs index 710db5f..8a49da1 100644 --- a/src/session.rs +++ b/src/session.rs @@ -102,12 +102,13 @@ impl Session { self.send_frame(0x8, &[]).await } - pub fn start_ping(self: Arc) { + pub fn start_ping_loop(&self) { + let s = self.clone(); tokio::task::spawn(async move { let mut interval = tokio::time::interval(std::time::Duration::from_secs(15)); loop { interval.tick().await; - if self.send_ping().await.is_err() { + if s.send_ping().await.is_err() { break; } }