attemptReconnect method

Future<bool> attemptReconnect()

Implementation

Future<bool> attemptReconnect() async {
  await _stream.cancel();
  var result = await _client.subscribe(cacheName, topicName,
      resumeAtTopicSequenceNumber: lastSequenceNumber,
      resumeAtTopicSequencePage: lastSequencePage);
  if (result is TopicSubscription) {
    logger.fine(
        "Attempting to reconnect to topic $topicName on cache $cacheName with sequence number $lastSequenceNumber and sequence page $lastSequencePage");
    _stream = result._stream;
    _broadcastStream = result._broadcastStream;
    lastSequenceNumber = result.lastSequenceNumber;
    lastSequencePage = result.lastSequencePage;
  } else if (result is TopicSubscribeError) {
    logger.fine("Error reconnecting: ${result.message}");
    if (result.errorCode == MomentoErrorCode.limitExceededError ||
        result.errorCode == MomentoErrorCode.cancelledError) {
      return false;
    }
  }
  return true;
}