removeSubscription method

Future<RemoveSubscriptionResult> removeSubscription(
  1. RealtimeSubscription subscription
)

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,
  );
}