HotlineSubscription constructor

HotlineSubscription(
  1. String identifier,
  2. HotlineSubscriptionManager subscriptionManager, {
  3. required Function? onReceived,
  4. required Function? onConfirmed,
  5. Function? onUnsubscribed,
  6. Function? onRejected,
})

Implementation

HotlineSubscription(this.identifier, this.subscriptionManager, {required this.onReceived, required this.onConfirmed, this.onUnsubscribed, this.onRejected}) {
  final subscriptionParameters = jsonEncode({'identifier': identifier, 'command': 'subscribe'});

  /// dispatch the subscription
  _sendSubscriptionRequest(subscriptionParameters);
  stateType = HotlineSubscriptionRequestState.subscribing;

  /// if the subscription hasn't been accepted with n milliseconds, assume it's been rejected or the server has gone away
  Future.delayed(Duration(milliseconds: _SUBSCRIPTION_REQUEST_TIMEOUT), () {
    if (state != HotlineSubscriptionRequestState.granted) rejected();
  });
}