From b64257b822367111199197d631b830cc3b8a5deb Mon Sep 17 00:00:00 2001 From: Damodar Lohani Date: Wed, 11 Jan 2023 10:25:01 +0545 Subject: [PATCH 1/3] send back websocket done and error events through subscription --- .../flutter/lib/src/realtime_mixin.dart.twig | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/templates/flutter/lib/src/realtime_mixin.dart.twig b/templates/flutter/lib/src/realtime_mixin.dart.twig index 63c8c9278..367b6f6d6 100644 --- a/templates/flutter/lib/src/realtime_mixin.dart.twig +++ b/templates/flutter/lib/src/realtime_mixin.dart.twig @@ -76,6 +76,23 @@ mixin RealtimeMixin { } break; } + }, onDone: () { + for (var list in _channels.values) { + for (var stream in list) { + stream.close(); + } + } + _closeConnection(); + }, onError: (err, stack) { + for (var list in _channels.values) { + for (var stream in list) { + stream.sink.addError(err, stack); + } + } + if (_websok?.closeCode != null && _websok?.closeCode != 1008) { + debugPrint("Reconnecting in one second."); + Future.delayed(Duration(seconds: 1), _createSocket); + } }); } catch (e) { if (e is {{spec.title | caseUcfirst}}Exception) { From d3de115e166b2309c6069b42ae8c9b74fdd92a3b Mon Sep 17 00:00:00 2001 From: Damodar Lohani Date: Thu, 9 Feb 2023 10:24:21 +0545 Subject: [PATCH 2/3] reset channels on done --- templates/flutter/lib/src/realtime_mixin.dart.twig | 1 + 1 file changed, 1 insertion(+) diff --git a/templates/flutter/lib/src/realtime_mixin.dart.twig b/templates/flutter/lib/src/realtime_mixin.dart.twig index 367b6f6d6..d15ed688d 100644 --- a/templates/flutter/lib/src/realtime_mixin.dart.twig +++ b/templates/flutter/lib/src/realtime_mixin.dart.twig @@ -82,6 +82,7 @@ mixin RealtimeMixin { stream.close(); } } + _channels = {}; _closeConnection(); }, onError: (err, stack) { for (var list in _channels.values) { From 108f894df31e3f6a71f61b879bc21c029e33ad13 Mon Sep 17 00:00:00 2001 From: Damodar Lohani Date: Fri, 10 Feb 2023 01:06:20 +0000 Subject: [PATCH 3/3] clear channels --- templates/flutter/lib/src/realtime_mixin.dart.twig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/flutter/lib/src/realtime_mixin.dart.twig b/templates/flutter/lib/src/realtime_mixin.dart.twig index d15ed688d..accf973c6 100644 --- a/templates/flutter/lib/src/realtime_mixin.dart.twig +++ b/templates/flutter/lib/src/realtime_mixin.dart.twig @@ -82,7 +82,7 @@ mixin RealtimeMixin { stream.close(); } } - _channels = {}; + _channels.clear(); _closeConnection(); }, onError: (err, stack) { for (var list in _channels.values) {