resolveUri method

Future<ResolvedDocument?> resolveUri(
  1. RicochetUri uri, {
  2. Duration? perServerTimeout,
})

Resolve a Ricochet URI to its content

Tries each server in the URI's server list until one succeeds, providing automatic failover and resilience.

Returns null if the resource doesn't exist or all servers fail.

Example:

final uri = RicochetUri.parse('ricochet://12D3KooWBob.../doc/avatar?servers=...');
final resolved = await client.resolveUri(uri);
if (resolved != null) {
  final imageData = resolved.content;
  final optimizedUri = resolved.optimizedUri; // Server order updated
}

Implementation

Future<ResolvedDocument?> resolveUri(
  RicochetUri uri, {
  Duration? perServerTimeout,
}) async {
  final resolver = RicochetUriResolver(this, defaultPerServerTimeout: perServerTimeout ?? config.messageTimeout);
  return resolver.resolveDocument(uri, perServerTimeout: perServerTimeout);
}