forceCreate method

Future<void> forceCreate()

Force create the subscription, waiting for connection if needed.

Implementation

Future<void> forceCreate() async {
  if (_getEventSourceStatus() != TransmitStatus.connected) {
    await Future.delayed(const Duration(milliseconds: 100));
    return create();
  }

  final request = _httpClient.createRequest('/__transmit/subscribe', {
    'channel': _channel,
  });

  _hooks?.beforeSubscribe(request);

  try {
    final response = await _httpClient.send(request);

    // Dump the response text
    await response.body;

    if (response.statusCode < 200 || response.statusCode >= 300) {
      _hooks?.onSubscribeFailed(response);
      return;
    }

    _status = SubscriptionStatus.created;
    _hooks?.onSubscription(_channel);
  } catch (error) {
    // Error handling
  }
}