getFastServer method

dynamic getFastServer({
  1. required List<String> servers,
  2. required dynamic onPingTestCompleted(
    1. List<int> timeList
    ),
})

Implementation

getFastServer(
{ required List<String> servers, required Function(List<int> timeList) onPingTestCompleted}) {
  pingTimes = List.generate(servers.length, (index) => index);
  for (int i = 0; i < servers.length; i++) {
    pingsList.insert(i, Ping(servers[i]));
    pingsList[i].stream.listen((event) {
      pingTimes[i] = event.response?.time?.inMilliseconds ?? 0;
    });
  }
  Future.delayed(const Duration(seconds: 2), () {
    onPingTestCompleted(pingTimes);

    // Stop Pings
    for (final o in pingsList) {
      o.stop();
    }
  });
}