subscribeTo method

RealtimeSubscription subscribeTo(
  1. List<String> channels
)
inherited

Implementation

RealtimeSubscription subscribeTo(List<String> channels) {
  StreamController<RealtimeMessage> controller = StreamController.broadcast();
  _channels.addAll(channels);
  Future.delayed(Duration.zero, () => _createSocket());
  int id = DateTime.now().microsecondsSinceEpoch;
  RealtimeSubscription subscription = RealtimeSubscription(
    controller: controller,
    channels: channels,
    close: () async {
      _subscriptions.remove(id);
      controller.close();
      _cleanup(channels);

      if (_channels.isNotEmpty) {
        await Future.delayed(Duration.zero, () => _createSocket());
      } else {
        await _closeConnection();
      }
    },
  );
  _subscriptions[id] = subscription;
  return subscription;
}