subscribeToPublishers method

Future<void> subscribeToPublishers(
  1. Set<int> publishersIds
)

Implementation

Future<void> subscribeToPublishers(Set<int> publishersIds) async {
  logTime("subscribeToPublishers = $publishersIds", _TAG);
  try {
    if (creatingSubscription) {
      return Future.delayed(const Duration(milliseconds: 500),
          () => subscribeToPublishers(publishersIds));
    }

    if (joinedAsSubscriber) {
      return _signaler.subscribe(publishersIds).then((_) {
        for (var publisher in publishersIds) {
          onSubscribedOnPublisher?.call(publisher);
          _connectionCallback?.onConnectedToUser(this, publisher);
        }

        joinEventPublishers.removeAll(publishersIds);
      });
    }

    creatingSubscription = true;
    return _signaler
        .attachPlugin(ConferenceConfig.instance.plugin, false)
        .then((_) {
      return _signaler.joinDialogAsSubscriber(publishersIds).then((_) {
        joinedAsSubscriber = true;

        for (var publisher in publishersIds) {
          onSubscribedOnPublisher?.call(publisher);
          _connectionCallback?.onConnectedToUser(this, publisher);
        }

        // joinEventPublishers.removeAll(publishersIds);
      });
    });
  } on WsException catch (ex) {
    logTime("subscribeToPublishers error: =$ex", _TAG);
    notifySessionError(ex);
    return Future.error(ex);
  }
}