sortNodesByLatency function
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();
}