fix: reconnect on ws failure
This commit is contained in:
parent
84cb4e5e78
commit
27b3658e1d
5 changed files with 430 additions and 3 deletions
|
|
@ -80,6 +80,7 @@ pub struct WsError {
|
|||
pub fn use_channel_websocket(
|
||||
realm_slug: Signal<String>,
|
||||
channel_id: Signal<Option<uuid::Uuid>>,
|
||||
reconnect_trigger: Signal<u32>,
|
||||
on_members_update: Callback<Vec<ChannelMemberWithAvatar>>,
|
||||
on_chat_message: Callback<ChatMessage>,
|
||||
on_loose_props_sync: Callback<Vec<LooseProp>>,
|
||||
|
|
@ -120,6 +121,8 @@ pub fn use_channel_websocket(
|
|||
Effect::new(move |_| {
|
||||
let slug = realm_slug.get();
|
||||
let ch_id = channel_id.get();
|
||||
// Track reconnect_trigger to force reconnection when it changes
|
||||
let _trigger = reconnect_trigger.get();
|
||||
|
||||
// Cleanup previous connection
|
||||
if let Some(old_ws) = ws_ref_clone.borrow_mut().take() {
|
||||
|
|
@ -458,6 +461,7 @@ fn handle_server_message(
|
|||
pub fn use_channel_websocket(
|
||||
_realm_slug: Signal<String>,
|
||||
_channel_id: Signal<Option<uuid::Uuid>>,
|
||||
_reconnect_trigger: Signal<u32>,
|
||||
_on_members_update: Callback<Vec<ChannelMemberWithAvatar>>,
|
||||
_on_chat_message: Callback<ChatMessage>,
|
||||
_on_loose_props_sync: Callback<Vec<LooseProp>>,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue