removeSubscription method
Closes and removes a subscription and returns the number of open subscriptions.
subscription
: subscription The subscription you want to close and remove.
Implementation
Future<RemoveSubscriptionResult> removeSubscription(
RealtimeSubscription subscription,
) async {
final completer = Completer<int>();
final closeSubscriptionResult = await _closeSubscription(subscription);
final allSubs = [...getSubscriptions()];
final openSubsCount =
allSubs.where((sub) => sub.isJoined()).toList().length;
if (openSubsCount == 0) {
realtime.disconnect(reason: 'all subscriptions closed');
}
completer.complete(openSubsCount);
return RemoveSubscriptionResult(
openSubscriptions: openSubsCount,
error: closeSubscriptionResult,
);
}