Skip to content

Commit dde5beb

Browse files
committed
Break out of send loop when disconnect error raised
1 parent 649fb18 commit dde5beb

1 file changed

Lines changed: 8 additions & 3 deletions

File tree

src/handler/mod.rs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ pub mod ts;
55

66
use futures::{Stream, StreamExt};
77
use jsonrpsee::{
8-
RpcModule, SubscriptionCloseResponse, SubscriptionMessage,
8+
DisconnectError, RpcModule, SubscriptionCloseResponse, SubscriptionMessage,
99
types::{Params, ResponsePayload},
1010
};
1111
use serde::Deserialize;
@@ -270,7 +270,10 @@ where
270270

271271
while let Some(item) = stream.next().await {
272272
let item = serde_json::value::to_raw_value(&item.transform()).unwrap();
273-
sink.send(item).await.unwrap();
273+
if let Some(DisconnectError(..)) = sink.send(item).await.err() {
274+
break;
275+
};
276+
274277
count += 1;
275278
}
276279

@@ -338,7 +341,9 @@ where
338341

339342
while let Some(item) = stream.next().await {
340343
let item = serde_json::value::to_raw_value(&item.transform()).unwrap();
341-
sink.send(item).await.unwrap();
344+
if let Some(DisconnectError(..)) = sink.send(item).await.err() {
345+
break;
346+
};
342347
count += 1;
343348
}
344349

0 commit comments

Comments
 (0)