From 773b8d5579c066a8064625ebf5c231bcb9f94960 Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Tue, 26 Jan 2021 10:12:13 +0100 Subject: [PATCH 1/6] stop ws reconnection after calling disconnect --- packages/dart_client/lib/src/api/websocket.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/dart_client/lib/src/api/websocket.dart b/packages/dart_client/lib/src/api/websocket.dart index a8288573..e3194078 100644 --- a/packages/dart_client/lib/src/api/websocket.dart +++ b/packages/dart_client/lib/src/api/websocket.dart @@ -293,6 +293,7 @@ class WebSocket { logger.info('disconnecting'); _connectionCompleter = Completer(); _cancelTimers(); + _reconnecting = false; _manuallyClosed = true; connectionStatus.value = ConnectionStatus.disconnected; connectionStatus.dispose(); From e39daa0d6ec8d006e26f64f8b1bd4629dc5d1828 Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Tue, 26 Jan 2021 10:13:21 +0100 Subject: [PATCH 2/6] llc version bump --- packages/dart_client/CHANGELOG.md | 4 ++++ packages/dart_client/lib/version.dart | 2 +- packages/dart_client/pubspec.yaml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/dart_client/CHANGELOG.md b/packages/dart_client/CHANGELOG.md index 5c799a17..4019cf06 100644 --- a/packages/dart_client/CHANGELOG.md +++ b/packages/dart_client/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.24+1 + +- Stop ws reconnection after calling disconnect + ## 0.2.24 - Create enum for push providers diff --git a/packages/dart_client/lib/version.dart b/packages/dart_client/lib/version.dart index bc746ab0..cf6b0a93 100644 --- a/packages/dart_client/lib/version.dart +++ b/packages/dart_client/lib/version.dart @@ -2,4 +2,4 @@ import 'package:stream_chat/src/client.dart'; /// Current package version /// Used in [Client] to build the `x-stream-client` header -const PACKAGE_VERSION = '0.2.24'; +const PACKAGE_VERSION = '0.2.24+1'; diff --git a/packages/dart_client/pubspec.yaml b/packages/dart_client/pubspec.yaml index 9fd0d9e0..f9c22db0 100644 --- a/packages/dart_client/pubspec.yaml +++ b/packages/dart_client/pubspec.yaml @@ -1,7 +1,7 @@ name: stream_chat homepage: https://getstream.io/ description: The official Dart client for Stream Chat, a service for building chat applications. -version: 0.2.24 +version: 0.2.24+1 repository: https://github.com/GetStream/stream-chat-dart issue_tracker: https://github.com/GetStream/stream-chat-dart/issues From a8c44829b4223702e42f2169cdbd67b55634ce90 Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Tue, 26 Jan 2021 10:26:39 +0100 Subject: [PATCH 3/6] return if calling disconnect more than once in websocket --- packages/dart_client/lib/src/api/websocket.dart | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/dart_client/lib/src/api/websocket.dart b/packages/dart_client/lib/src/api/websocket.dart index e3194078..ebe19868 100644 --- a/packages/dart_client/lib/src/api/websocket.dart +++ b/packages/dart_client/lib/src/api/websocket.dart @@ -290,6 +290,9 @@ class WebSocket { /// Disconnects the WS and releases eventual resources Future disconnect() { + if (_manuallyClosed) { + return Future.value(); + } logger.info('disconnecting'); _connectionCompleter = Completer(); _cancelTimers(); From 20f37a6ff0b86523dbb664f3ff52b308fd6e3ca6 Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Tue, 26 Jan 2021 10:27:35 +0100 Subject: [PATCH 4/6] fix --- packages/dart_client/lib/src/api/websocket.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/dart_client/lib/src/api/websocket.dart b/packages/dart_client/lib/src/api/websocket.dart index ebe19868..48e7b0ee 100644 --- a/packages/dart_client/lib/src/api/websocket.dart +++ b/packages/dart_client/lib/src/api/websocket.dart @@ -289,9 +289,9 @@ class WebSocket { } /// Disconnects the WS and releases eventual resources - Future disconnect() { + Future disconnect() async { if (_manuallyClosed) { - return Future.value(); + return; } logger.info('disconnecting'); _connectionCompleter = Completer(); From 388829e32d0df4dfef1dce155322c4efd64f051f Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Tue, 26 Jan 2021 10:51:26 +0100 Subject: [PATCH 5/6] rename _manuallyClosed to _manuallyDisconnected --- packages/dart_client/lib/src/api/websocket.dart | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/dart_client/lib/src/api/websocket.dart b/packages/dart_client/lib/src/api/websocket.dart index 48e7b0ee..bdd14a1e 100644 --- a/packages/dart_client/lib/src/api/websocket.dart +++ b/packages/dart_client/lib/src/api/websocket.dart @@ -108,7 +108,9 @@ class WebSocket { WebSocketChannel _channel; Timer _healthCheck, _reconnectionMonitor; DateTime _lastEventAt; - bool _manuallyClosed = false, _connecting = false, _reconnecting = false; + bool _manuallyDisconnected = false, + _connecting = false, + _reconnecting = false; Event _decodeEvent(String source) { return Event.fromJson(json.decode(source)); @@ -118,7 +120,7 @@ class WebSocket { /// Connect the WS using the parameters passed in the constructor Future connect() { - _manuallyClosed = false; + _manuallyDisconnected = false; if (_connecting) { logger.severe('already connecting'); @@ -151,7 +153,7 @@ class WebSocket { void _onDone() { _connecting = false; - if (_manuallyClosed) { + if (_manuallyDisconnected) { return; } @@ -290,14 +292,14 @@ class WebSocket { /// Disconnects the WS and releases eventual resources Future disconnect() async { - if (_manuallyClosed) { + if (_manuallyDisconnected) { return; } logger.info('disconnecting'); _connectionCompleter = Completer(); _cancelTimers(); _reconnecting = false; - _manuallyClosed = true; + _manuallyDisconnected = true; connectionStatus.value = ConnectionStatus.disconnected; connectionStatus.dispose(); return _channel.sink.close(); From 849f9c2c4a6e45a999bfa3ede0afd96149e6abba Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Tue, 26 Jan 2021 11:00:05 +0100 Subject: [PATCH 6/6] update melos --- .github/workflows/scripts/install-tools.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scripts/install-tools.sh b/.github/workflows/scripts/install-tools.sh index b83f55f0..1f77f519 100755 --- a/.github/workflows/scripts/install-tools.sh +++ b/.github/workflows/scripts/install-tools.sh @@ -1,6 +1,6 @@ #!/bin/bash -flutter pub global activate melos 0.4.0-dev.2 +flutter pub global activate melos 0.4.0+1 echo "::add-path::$HOME/.pub-cache/bin" echo "::add-path::$GITHUB_WORKSPACE/_flutter/.pub-cache/bin" echo "::add-path::$GITHUB_WORKSPACE/_flutter/bin/cache/dart-sdk/bin" \ No newline at end of file