Skip to content

Commit 6ae73bc

Browse files
authored
fix: improve reconnect logic. (#654)
* fix: improve reconnect logic. * update. * change default rendererMode to texture. * When there is no internet connection, enter reconnect attempt. * update.
1 parent a0ee074 commit 6ae73bc

File tree

4 files changed

+7
-8
lines changed

4 files changed

+7
-8
lines changed

lib/src/core/engine.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -814,7 +814,7 @@ class Engine extends Disposable with EventsEmittable<EngineEvent> {
814814
events.emit(const EngineFullRestartingEvent());
815815

816816
if (signalClient.connectionState == ConnectionState.connected) {
817-
await signalClient.sendLeave();
817+
await signalClient.cleanUp();
818818
}
819819

820820
await publisher?.dispose();

lib/src/core/signal_client.dart

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ class SignalClient extends Disposable with EventsEmittable<SignalEvent> {
5959
String? participantSid;
6060

6161
List<ConnectivityResult> _connectivityResult = [];
62-
StreamSubscription<List<ConnectivityResult>>? connectivitySubscription;
62+
StreamSubscription<List<ConnectivityResult>>? _connectivitySubscription;
6363

6464
Future<bool> networkIsAvailable() async {
6565
// Skip check for web or flutter test
@@ -81,7 +81,8 @@ class SignalClient extends Disposable with EventsEmittable<SignalEvent> {
8181
await cleanUp();
8282
await events.dispose();
8383
if (!kIsWeb && !lkPlatformIsTest()) {
84-
await connectivitySubscription?.cancel();
84+
await _connectivitySubscription?.cancel();
85+
_connectivitySubscription = null;
8586
}
8687
});
8788
}
@@ -96,7 +97,8 @@ class SignalClient extends Disposable with EventsEmittable<SignalEvent> {
9697
}) async {
9798
if (!kIsWeb && !lkPlatformIsTest()) {
9899
_connectivityResult = await Connectivity().checkConnectivity();
99-
connectivitySubscription = Connectivity()
100+
await _connectivitySubscription?.cancel();
101+
_connectivitySubscription = Connectivity()
100102
.onConnectivityChanged
101103
.listen((List<ConnectivityResult> result) {
102104
if (_connectivityResult != result) {
@@ -116,8 +118,6 @@ class SignalClient extends Disposable with EventsEmittable<SignalEvent> {
116118

117119
if (_connectivityResult.contains(ConnectivityResult.none)) {
118120
logger.warning('no internet connection');
119-
events.emit(SignalDisconnectedEvent(
120-
reason: DisconnectReason.noInternetConnection));
121121
throw ConnectException('no internet connection',
122122
reason: ConnectionErrorReason.InternalError, statusCode: 503);
123123
}

lib/src/types/other.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,6 @@ enum DisconnectReason {
115115
joinFailure,
116116
disconnected,
117117
signalingConnectionFailure,
118-
noInternetConnection,
119118
reconnectAttemptsExceeded,
120119
}
121120

lib/src/widgets/video_track_renderer.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ class VideoTrackRenderer extends StatefulWidget {
5151
this.track, {
5252
this.fit = rtc.RTCVideoViewObjectFit.RTCVideoViewObjectFitContain,
5353
this.mirrorMode = VideoViewMirrorMode.auto,
54-
this.renderMode = VideoRenderMode.auto,
54+
this.renderMode = VideoRenderMode.texture,
5555
Key? key,
5656
}) : super(key: key);
5757

0 commit comments

Comments
 (0)