Browse Source

Fix bug with websocket close

Fixes #1111
Cesar Rodas 1 month ago
parent
commit
3536fe75a7
1 changed files with 10 additions and 1 deletions
  1. 10 1
      crates/cdk/src/wallet/subscription/ws.rs

+ 10 - 1
crates/cdk/src/wallet/subscription/ws.rs

@@ -177,7 +177,12 @@ pub async fn ws_main(
                 Some(msg) = read.next() => {
                     let msg = match msg {
                         Ok(msg) => msg,
-                        Err(_) => break,
+                        Err(_) => {
+                            if let Err(err) = write.send(Message::Close(None)).await {
+                                tracing::error!("Closing error {err:?}");
+                            }
+                            break
+                        },
                     };
                     let msg = match msg {
                         Message::Text(msg) => msg,
@@ -222,6 +227,10 @@ pub async fn ws_main(
                                     .await;
                                 }
 
+                                if let Err(err) = write.send(Message::Close(None)).await {
+                                    tracing::error!("Closing error {err:?}");
+                                }
+
                                 break; // break connection to force a reconnection, to attempt to recover form this error
                             }
                         }