close method

  1. @override
void close()
override

Close the transport

Implementation

@override
void close() {
  if (_isClosed) return;
  _isClosed = true;

  _logger.debug('Closing SseHeartbeatClientTransport');

  // Cancel all timers
  _heartbeatTimer?.cancel();
  _heartbeatTimeoutTimer?.cancel();
  _reconnectTimer?.cancel();

  // Close event source
  _eventSource.close();

  // Close streams
  if (!_messageController.isClosed) {
    _messageController.close();
  }
  if (!_healthController.isClosed) {
    _healthController.close();
  }
  if (!_closeCompleter.isCompleted) {
    _closeCompleter.complete();
  }

  _updateHealth(ConnectionHealth.disconnected);
}