From 69929d6990487b8f97ec0bb9df6e7f946c0728f7 Mon Sep 17 00:00:00 2001 From: lifegpc Date: Wed, 29 May 2024 08:17:21 +0000 Subject: [PATCH] Fix multiple websocket connection was established after change api entrypoint --- lib/task.dart | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/task.dart b/lib/task.dart index 9d005c4..1164e97 100644 --- a/lib/task.dart +++ b/lib/task.dart @@ -97,7 +97,8 @@ class TaskManager { Future connect() async { if (auth.canManageTasks != true) return; try { - _channel = await connectWebSocket(api.getTaskUrl()); + final url = api.getTaskUrl(); + _channel = await connectWebSocket(url); _channel!.stream.listen((event) { try { final data = jsonDecode(event) as Map; @@ -196,7 +197,8 @@ class TaskManager { } }, onError: (e) { _log.warning("Task websocket error: $e"); - if (_allowReconnect && !_needClosed) { + final url2 = api.getTaskUrl(); + if (_allowReconnect && !_needClosed && url == url2) { _log.info("Reconnecting to task server in 5 seconds"); _reconnectTimer = Timer(const Duration(seconds: 5), () { _reconnectTimer = null; @@ -209,7 +211,8 @@ class TaskManager { }, onDone: () { _log.warning( "WenSocket closed: ${_channel?.closeCode} ${_channel?.closeReason}"); - if (_allowReconnect && !_needClosed) { + final url2 = api.getTaskUrl(); + if (_allowReconnect && !_needClosed && url == url2) { _log.info("Reconnecting to task server in 5 seconds"); _reconnectTimer = Timer(const Duration(seconds: 5), () { _reconnectTimer = null;