From de6a4fba15bb27549011e470853f370d0a82149f Mon Sep 17 00:00:00 2001 From: maaeps Date: Tue, 11 Aug 2020 00:11:23 +0200 Subject: [PATCH 1/2] parseFileConstructor was missing at Parse.initialize --- lib/parse_server_sdk.dart | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/parse_server_sdk.dart b/lib/parse_server_sdk.dart index 93fca240f..20b3428a2 100644 --- a/lib/parse_server_sdk.dart +++ b/lib/parse_server_sdk.dart @@ -95,6 +95,7 @@ class Parse { CoreStore coreStore, Map registeredSubClassMap, ParseUserConstructor parseUserConstructor, + ParseFileConstructor parseFileConstructor, }) async { final String url = removeTrailingSlash(serverUrl); @@ -112,6 +113,7 @@ class Parse { store: coreStore, registeredSubClassMap: registeredSubClassMap, parseUserConstructor: parseUserConstructor, + parseFileConstructor: parseFileConstructor, ); _hasBeenInitialized = true; From b5fa3e5b416e44aff43dbc7977601778008ae4d3 Mon Sep 17 00:00:00 2001 From: maaeps Date: Tue, 11 Aug 2020 00:12:23 +0200 Subject: [PATCH 2/2] add liveListRetryIntervals to Parse.initialize --- README.md | 7 +++++++ lib/parse_server_sdk.dart | 2 ++ lib/src/data/parse_core_data.dart | 9 +++++++++ lib/src/network/parse_live_query.dart | 3 +-- lib/src/network/parse_live_query_web.dart | 3 +-- 5 files changed, 20 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f029e43e5..e30959fd3 100644 --- a/README.md +++ b/README.md @@ -524,6 +524,13 @@ LiveQuery server. liveQuery.client.unSubscribe(subscription); ``` +__Disconnection__ +In case the client's connection to the server breaks, +LiveQuery will automatically try to reconnect. +LiveQuery will wait at increasing intervals between reconnection attempts. +By default, these intervals are set to `[0, 500, 1000, 2000, 5000, 10000]` for mobile and `[0, 500, 1000, 2000, 5000]` for web. +You can change these by providing a custom list using the `liveListRetryIntervals` parameter at `Parse.initialize()` ("-1" means "do not try to reconnect"). + ## ParseLiveList ParseLiveList makes implementing a dynamic List as simple as possible. diff --git a/lib/parse_server_sdk.dart b/lib/parse_server_sdk.dart index 20b3428a2..825fa4a7c 100644 --- a/lib/parse_server_sdk.dart +++ b/lib/parse_server_sdk.dart @@ -96,6 +96,7 @@ class Parse { Map registeredSubClassMap, ParseUserConstructor parseUserConstructor, ParseFileConstructor parseFileConstructor, + List liveListRetryIntervals, }) async { final String url = removeTrailingSlash(serverUrl); @@ -114,6 +115,7 @@ class Parse { registeredSubClassMap: registeredSubClassMap, parseUserConstructor: parseUserConstructor, parseFileConstructor: parseFileConstructor, + liveListRetryIntervals: liveListRetryIntervals, ); _hasBeenInitialized = true; diff --git a/lib/src/data/parse_core_data.dart b/lib/src/data/parse_core_data.dart index 47b7f1a02..b97f13ed4 100644 --- a/lib/src/data/parse_core_data.dart +++ b/lib/src/data/parse_core_data.dart @@ -29,6 +29,7 @@ class ParseCoreData { Map registeredSubClassMap, ParseUserConstructor parseUserConstructor, ParseFileConstructor parseFileConstructor, + List liveListRetryIntervals, }) async { _instance = ParseCoreData._init(appId, serverUrl); @@ -59,6 +60,13 @@ class ParseCoreData { if (securityContext != null) { _instance.securityContext = securityContext; } + if (liveListRetryIntervals != null) { + _instance.liveListRetryIntervals = liveListRetryIntervals; + } else { + _instance.liveListRetryIntervals = kIsWeb + ? [0, 500, 1000, 2000, 5000] + : [0, 500, 1000, 2000, 5000, 10000]; + } _instance._subClassHandler = ParseSubClassHandler( registeredSubClassMap: registeredSubClassMap, @@ -79,6 +87,7 @@ class ParseCoreData { bool debug; CoreStore storage; ParseSubClassHandler _subClassHandler; + List liveListRetryIntervals; void registerSubClass( String className, ParseObjectConstructor objectConstructor) { diff --git a/lib/src/network/parse_live_query.dart b/lib/src/network/parse_live_query.dart index 88aa868df..ca90110c0 100644 --- a/lib/src/network/parse_live_query.dart +++ b/lib/src/network/parse_live_query.dart @@ -76,8 +76,7 @@ class LiveQueryReconnectingController with WidgetsBindingObserver { WidgetsBinding.instance.addObserver(this); } - // -1 means "do not try to reconnect", - static const List retryInterval = [0, 500, 1000, 2000, 5000, 10000]; + static List get retryInterval => ParseCoreData().liveListRetryIntervals; static const String DEBUG_TAG = 'LiveQueryReconnectingController'; final Function _reconnect; diff --git a/lib/src/network/parse_live_query_web.dart b/lib/src/network/parse_live_query_web.dart index d9a6f7602..6d9012785 100644 --- a/lib/src/network/parse_live_query_web.dart +++ b/lib/src/network/parse_live_query_web.dart @@ -71,8 +71,7 @@ class LiveQueryReconnectingController with WidgetsBindingObserver { WidgetsBinding.instance.addObserver(this); } - // -1 means "do not try to reconnect", - static const List retryInterval = [0, 500, 1000, 2000, 5000]; + static List get retryInterval => ParseCoreData().liveListRetryIntervals; static const String DEBUG_TAG = 'LiveQueryReconnectingController'; final Function _reconnect;