reconnectDelay static method
The delay before reconnect attempt number attempts (0-based).
Exponential backoff with jitter:
min(baseDelay * 2^attempts, maxDelay) + random(jitter).
Implementation
static Duration reconnectDelay(
int attempts, {
Duration baseDelay = reconnectBaseDelay,
Duration maxDelay = reconnectMaxDelay,
Duration jitter = reconnectJitter,
Random? random,
}) {
// Cap the shift so the doubling cannot overflow.
final shift = min(attempts, 20);
final delay = min(
baseDelay.inMilliseconds << shift,
maxDelay.inMilliseconds,
);
final jitterMs = jitter.inMilliseconds <= 0
? 0
: (random ?? Random()).nextInt(jitter.inMilliseconds + 1);
return Duration(milliseconds: delay + jitterMs);
}