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:
@@ -180,18 +180,18 @@ class RemoteParticipant extends Participant<RemoteTrackPublication> {
|
||||
}
|
||||
}
|
||||
|
||||
// unpublish any track that is not in the info
|
||||
// remove any published track that is not in the info
|
||||
final validSids = info.tracks.map((e) => e.sid);
|
||||
final removeSids =
|
||||
trackPublications.keys.where((e) => !validSids.contains(e)).toSet();
|
||||
for (final sid in removeSids) {
|
||||
await unpublishTrack(sid);
|
||||
await removePublishedTrack(sid);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> unpublishTrack(String trackSid, {bool notify = true}) async {
|
||||
logger.finer('Unpublish track sid: $trackSid, notify: $notify');
|
||||
Future<void> removePublishedTrack(String trackSid,
|
||||
{bool notify = true}) async {
|
||||
logger.finer('removePublishedTrack track sid: $trackSid, notify: $notify');
|
||||
final pub = trackPublications.remove(trackSid);
|
||||
if (pub == null) {
|
||||
logger.warning('Publication not found $trackSid');
|
||||
@@ -220,6 +220,12 @@ class RemoteParticipant extends Participant<RemoteTrackPublication> {
|
||||
await pub.dispose();
|
||||
}
|
||||
|
||||
@Deprecated(
|
||||
'`unpublishTrack` is deprecated, use `removePublishedTrack` instead')
|
||||
@override
|
||||
Future<void> unpublishTrack(String trackSid, {bool notify = true}) =>
|
||||
removePublishedTrack(trackSid, notify: notify);
|
||||
|
||||
@internal
|
||||
lk_models.ParticipantTracks participantTracks() =>
|
||||
lk_models.ParticipantTracks(
|
||||
|
||||
Reference in New Issue
Block a user