upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/src/sync/relay_connection.rs
diff options
context:
space:
mode:
authorDanConwayDev <DanConwayDev@protonmail.com>2025-12-22 14:38:16 +0000
committerDanConwayDev <DanConwayDev@protonmail.com>2025-12-22 14:38:16 +0000
commitf7546879af9a692fd466772c9af772ada8aca68e (patch)
tree049de66b90c91cb65cf68d4fa620f788140280eb /src/sync/relay_connection.rs
parent541f34a207047b26547154e7d631005d456f12fd (diff)
fix: sync consoldate subscription count
Diffstat (limited to 'src/sync/relay_connection.rs')
-rw-r--r--src/sync/relay_connection.rs24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/sync/relay_connection.rs b/src/sync/relay_connection.rs
index d69e1ce..de20e0f 100644
--- a/src/sync/relay_connection.rs
+++ b/src/sync/relay_connection.rs
@@ -218,7 +218,11 @@ impl RelayConnection {
218 sub_id = %subscription_id, 218 sub_id = %subscription_id,
219 "Received event" 219 "Received event"
220 ); 220 );
221 if event_sender.send(RelayEvent::Event(*event, subscription_id.clone())).await.is_err() { 221 if event_sender
222 .send(RelayEvent::Event(*event, subscription_id.clone()))
223 .await
224 .is_err()
225 {
222 tracing::debug!(relay = %url, "Event sender closed, stopping event loop"); 226 tracing::debug!(relay = %url, "Event sender closed, stopping event loop");
223 break; 227 break;
224 } 228 }
@@ -242,7 +246,8 @@ impl RelayConnection {
242 } 246 }
243 RelayMessage::Notice(msg) => { 247 RelayMessage::Notice(msg) => {
244 tracing::debug!(relay = %url, message = %msg, "Received NOTICE"); 248 tracing::debug!(relay = %url, message = %msg, "Received NOTICE");
245 let _ = event_sender.send(RelayEvent::Notice(msg.to_string())).await; 249 let _ =
250 event_sender.send(RelayEvent::Notice(msg.to_string())).await;
246 // Don't break - continue processing events 251 // Don't break - continue processing events
247 } 252 }
248 RelayMessage::Closed { message: msg, .. } => { 253 RelayMessage::Closed { message: msg, .. } => {
@@ -358,6 +363,21 @@ impl RelayConnection {
358 &self.url 363 &self.url
359 } 364 }
360 365
366 /// Get the number of active subscriptions on this connection
367 ///
368 /// Returns the count of subscriptions tracked by the underlying nostr-sdk client.
369 /// This reflects all active REQ subscriptions on the relay, including:
370 /// - Layer 1 announcement subscriptions
371 /// - Layer 2 repo-tagging subscriptions
372 /// - Layer 3 root-event subscriptions
373 /// - Both historic (auto-close) and live subscriptions
374 ///
375 /// # Returns
376 /// The number of active subscriptions
377 pub async fn subscription_count(&self) -> usize {
378 self.client.subscriptions().await.len()
379 }
380
361 /// Disconnect from the relay 381 /// Disconnect from the relay
362 pub async fn disconnect(&self) { 382 pub async fn disconnect(&self) {
363 self.client.disconnect().await; 383 self.client.disconnect().await;