Skip to content

Commit

Permalink
Use the same close logic everywhere
Browse files Browse the repository at this point in the history
  • Loading branch information
emilk committed Apr 18, 2024
1 parent 0985768 commit 4c170c3
Showing 1 changed file with 13 additions and 19 deletions.
32 changes: 13 additions & 19 deletions ewebsock/src/web.rs
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,9 @@ impl WsSender {
/// This should never fail, except _maybe_ on Web.
pub fn close(&mut self) -> Result<()> {

Check failure on line 58 in ewebsock/src/web.rs

View workflow job for this annotation

GitHub Actions / Check wasm32

this function's return value is unnecessary

Check failure on line 58 in ewebsock/src/web.rs

View workflow job for this annotation

GitHub Actions / Check wasm32

this function's return value is unnecessary
if let Some(socket) = self.socket.take() {
log::debug!("Closing WebSocket");
socket.close().map_err(string_from_js_value)
} else {
Ok(())
close_socket(&socket);
}
Ok(())
}

/// Forget about this sender without closing the connection.
Expand Down Expand Up @@ -123,11 +121,7 @@ pub(crate) fn ws_connect_impl(
))),
};
if control.is_break() {
if let Err(err) = socket3.close() {
log::warn!("Failed to close WebSocket: {err:?}");
} else {
log::debug!("Closed WebSocket");
}
close_socket(&socket3);
}
})
as Box<dyn FnMut(web_sys::ProgressEvent)>);
Expand All @@ -148,11 +142,7 @@ pub(crate) fn ws_connect_impl(
))))
};
if control.is_break() {
if let Err(err) = socket2.close() {
log::warn!("Failed to close WebSocket: {err:?}");
} else {
log::debug!("Closed WebSocket");
}
close_socket(&socket2);
}
}) as Box<dyn FnMut(web_sys::MessageEvent)>);

Expand Down Expand Up @@ -183,11 +173,7 @@ pub(crate) fn ws_connect_impl(
let onopen_callback = Closure::wrap(Box::new(move |_| {
let control = on_event(WsEvent::Opened);
if control.is_break() {
if let Err(err) = socket2.close() {
log::warn!("Failed to close WebSocket: {err:?}");
} else {
log::debug!("Closed WebSocket");
}
close_socket(&socket2);
}
}) as Box<dyn FnMut(wasm_bindgen::JsValue)>);
socket.set_onopen(Some(onopen_callback.as_ref().unchecked_ref()));
Expand All @@ -206,3 +192,11 @@ pub(crate) fn ws_connect_impl(
socket: Some(socket),
})
}

fn close_socket(socket: &web_sys::WebSocket) {
if let Err(err) = socket.close() {
log::warn!("Failed to close WebSocket: {}", string_from_js_value(err));
} else {
log::debug!("Closed WebSocket");
}
}

0 comments on commit 4c170c3

Please sign in to comment.