Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .changes/reconnect-jitter
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
patch type="fixed" "Add jitter to reconnect retry delays"
7 changes: 6 additions & 1 deletion lib/src/core/engine.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
// ignore_for_file: deprecated_member_use_from_same_package

import 'dart:async';
import 'dart:math' as math;
import 'dart:typed_data' show Uint8List;

import 'package:flutter/foundation.dart' show kDebugMode, kIsWeb;
Expand Down Expand Up @@ -1013,7 +1014,11 @@ class Engine extends Disposable with EventsEmittable<EngineEvent> {
return;
}

final delay = defaultRetryDelaysInMs[reconnectAttempts!];
var delay = defaultRetryDelaysInMs[reconnectAttempts!];
// Add random jitter to prevent thundering herd on reconnect
if (reconnectAttempts! > 1) {
delay += math.Random().nextInt(1000);
}

events.emit(EngineAttemptReconnectEvent(
attempt: reconnectAttempts! + 1,
Expand Down
Loading