Skip to content

Commit 88fa02b

Browse files
committed
fix: improve error handling for binary message deserialization in ws_manager
1 parent 4f85762 commit 88fa02b

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

src/ws.rs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,18 @@ async fn ws_manager(
4444
if msg.is_binary() {
4545
let payload = msg.into_payload();
4646
let evt = rmp_serde::from_slice::<ServerEvent>(&payload)
47-
.map_err(|e| anyhow::anyhow!("Failed to deserialize binary data: {}", e))?;
48-
tx.send(evt)
49-
.await
50-
.map_err(|e| anyhow::anyhow!("Failed to send event to channel: {}", e))?;
47+
.map_err(|e| anyhow::anyhow!("Failed to deserialize binary data: {}", e));
48+
match evt {
49+
Err(e) => {
50+
log::warn!("{}", e);
51+
continue;
52+
}
53+
Ok(evt) => {
54+
tx.send(evt).await.map_err(|e| {
55+
anyhow::anyhow!("Failed to send event to channel: {}", e)
56+
})?;
57+
}
58+
}
5159
} else {
5260
log::error!("Unexpected non-binary WebSocket message received");
5361
continue;

0 commit comments

Comments
 (0)