diff --git a/packages/stream_chat/CHANGELOG.md b/packages/stream_chat/CHANGELOG.md index ccd95ccf..14f23f4c 100644 --- a/packages/stream_chat/CHANGELOG.md +++ b/packages/stream_chat/CHANGELOG.md @@ -2,6 +2,7 @@ 🐞 Fixed - Unread count specific to channel setting global unread count on a specific case. +- The reconnection logic for the ws is now more robust. ## 3.5.0 diff --git a/packages/stream_chat/lib/src/ws/websocket.dart b/packages/stream_chat/lib/src/ws/websocket.dart index 82c7d7c1..888ba08b 100644 --- a/packages/stream_chat/lib/src/ws/websocket.dart +++ b/packages/stream_chat/lib/src/ws/websocket.dart @@ -190,8 +190,12 @@ class WebSocket with TimerHelper { _connectionStatus = ConnectionStatus.connecting; connectionCompleter = Completer(); - final uri = await _buildUri(); - _initWebSocketChannel(uri); + try { + final uri = await _buildUri(); + _initWebSocketChannel(uri); + } catch (e, stk) { + _onConnectionError(e, stk); + } return connectionCompleter!.future; } @@ -216,7 +220,11 @@ class WebSocket with TimerHelper { Duration(milliseconds: delay), () async { final uri = await _buildUri(refreshToken: refreshToken); - _initWebSocketChannel(uri); + try { + _initWebSocketChannel(uri); + } catch (e, stk) { + _onConnectionError(e, stk); + } }, ); }