sortNodesByLatency function

Future<List<String>> sortNodesByLatency(
  1. List<String> urls
)

Sort a list of server URLs by their WebSocket latency (fastest first)

Returns URLs sorted in ascending order of latency. Unreachable servers are placed at the end with double.infinity latency.

Implementation

Future<List<String>> sortNodesByLatency(List<String> urls) async {
  final results = await Future.wait(
    urls.map((url) async {
      final latency = await measureWebsocketLatency(url);
      return (url: url, latency: latency);
    }),
  );

  results.sort((a, b) => a.latency.compareTo(b.latency));
  return results.map((r) => r.url).toList();
}