check static method

Future<InternetStatus> check({
  1. Duration timeout = const Duration(seconds: 3),
  2. String url = 'https://www.google.com',
})

Checks real internet and measures ping using Dio.

Implementation

static Future<InternetStatus> check({
  Duration timeout = const Duration(seconds: 3),
  String url = 'https://www.google.com',
}) async {
  try {
    final stopwatch = Stopwatch()..start();
    final response = await _dio.get(url,
        options: Options(sendTimeout: timeout, receiveTimeout: timeout));
    stopwatch.stop();

    final ping = stopwatch.elapsedMilliseconds;
    final online = response.statusCode == 200;

    return InternetStatus(isOnline: online, pingMs: ping);
  } catch (_) {
    return InternetStatus(isOnline: false);
  }
}