stabilityScore property

double get stabilityScore

Stability score 0..1 (same formula as nkn-sdk-go CalculateClientScore, without duration if connectTimeMs missing).

Implementation

double get stabilityScore {
  if (state != ConnState.connected) return 0.0;
  double score = 0.5;
  final durationSec = connectionDurationSeconds;
  if (durationSec > 0) {
    const oneHour = 3600.0;
    final durationScore = (durationSec / oneHour).clamp(0.0, 1.0);
    score += durationScore * 0.4;
  }
  final reconnectPenalty = (reconnectCount * 0.02).clamp(0.0, 0.1);
  score -= reconnectPenalty;
  final sendFailurePenalty = (sendFailureCount * 0.01).clamp(0.0, 0.1);
  score -= sendFailurePenalty;
  return score.clamp(0.0, 1.0);
}