Closed brandonros closed 4 months ago
I've just ran into the same issue.
As far as I understand, it is because there was some error in web socket but error_event.message
is undefined
, which is unexpected by rust code.
//ewebsock-0.5.0/src/web.rs ws_connect_impl
{
let on_event = on_event.clone();
let onerror_callback = Closure::wrap(Box::new(move |error_event: web_sys::ErrorEvent| {
log::error!(
"error event: {}: {:?}",
error_event.message(),
error_event.error()
);
on_event(WsEvent::Error(error_event.message()));
}) as Box<dyn FnMut(web_sys::ErrorEvent)>);
ws.set_onerror(Some(onerror_callback.as_ref().unchecked_ref()));
onerror_callback.forget();
}
// web_sys/src/features/gen_ErrorEvent.rs
#[wasm_bindgen]
extern "C" {
# [wasm_bindgen (extends = Event , extends = :: js_sys :: Object , js_name = ErrorEvent , typescript_type = "ErrorEvent")]
...
pub fn message(this: &ErrorEvent) -> String;
Actual event:
It can be fixed in ewebsock by not using message, or by treating error_event as untyped js object.