e2e: fix resume/full-reconnect. (#194)

* fix: full re-connect.

* chore: Reset fullReConnect state after ConnectionState is emitted.

* Support full reconnect, fix Migration, NodeFailure, FullReconnect test cases.

* revert Timeouts.connection.

* update.

* Refactor the resume/reconnect implementation.

* more changes.

* update.

* Changed to simpler reconnect/recovery logic.

* update.

* update.

* code format.

* tidy.

* bump version for flutter-webrtc.

* chore: Remove unused exception class (SignalReconnectError).

* chore: rename `fullReconnectOnNext` to `fullReconnect`.

* update.

* chore: Revert changes for `unpublishTrack`.

* chore: Reconnect signalClient when resumeConnection.

* revert `rethrow` in engine.connect.

* Use removePublishedTrack instead of unpublishTrack (RemoteParticipant).

* chore: Correctly handle PeerConnectionState for resume/full-reconnect.

* tidy.
This commit is contained in:
CloudWebRTC
2022-11-08 16:06:09 +08:00
committed by GitHub
parent 9b0f0604e1
commit 0d8441ebfb
17 changed files with 300 additions and 144 deletions
+12
View File
@@ -240,6 +240,18 @@ class LocalParticipant extends Participant<LocalTrackPublication> {
await pub.dispose();
}
Future<void> rePublishAllTracks() async {
final tracks = trackPublications.values.toList();
trackPublications.clear();
for (LocalTrackPublication track in tracks) {
if (track.track is LocalAudioTrack) {
await publishAudioTrack(track.track as LocalAudioTrack);
} else if (track.track is LocalVideoTrack) {
await publishVideoTrack(track.track as LocalVideoTrack);
}
}
}
/// Publish a new data payload to the room.
/// @param destinationSids When empty, data will be forwarded to each participant in the room.
Future<void> publishData(