From c6ce3fe2b7f2fbc7e6e21a7dc4e3b775b2df7567 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Mon, 3 Feb 2025 21:34:05 +0800 Subject: [PATCH] :bug: Patch websocket connection issue --- lib/providers/websocket.dart | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/providers/websocket.dart b/lib/providers/websocket.dart index 676b097..a31e18e 100644 --- a/lib/providers/websocket.dart +++ b/lib/providers/websocket.dart @@ -33,7 +33,16 @@ class WebSocketProvider extends ChangeNotifier { await connect(); } + Completer? _connectCompleter; + Future connect({noRetry = false}) async { + if(_connectCompleter != null) { + await _connectCompleter!.future; + _connectCompleter = null; + } + + _connectCompleter = Completer(); + if (!_ua.isAuthorized) return; if (isConnected || conn != null) { disconnect(); @@ -64,12 +73,13 @@ class WebSocketProvider extends ChangeNotifier { log('Retry connecting to websocket in 3 seconds...'); return Future.delayed( const Duration(seconds: 3), - () => connect(noRetry: true), + () => connect(noRetry: true), ); } } finally { isBusy = false; notifyListeners(); + _connectCompleter!.complete(); } }