From 9d6ad5be70d2b69150dc667ecfa862651c3a7a57 Mon Sep 17 00:00:00 2001 From: Hiroshi Horie <548776+hiroshihorie@users.noreply.github.com> Date: Mon, 23 Mar 2026 21:10:38 +0900 Subject: [PATCH 1/2] impl 1 --- lib/src/core/engine.dart | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/src/core/engine.dart b/lib/src/core/engine.dart index 3f9d02b8c..d5c113cbc 100644 --- a/lib/src/core/engine.dart +++ b/lib/src/core/engine.dart @@ -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; @@ -1013,7 +1014,11 @@ class Engine extends Disposable with EventsEmittable { 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, From 15d2e7fe88a860bd8911d9358201dbc5644c528f Mon Sep 17 00:00:00 2001 From: Hiroshi Horie <548776+hiroshihorie@users.noreply.github.com> Date: Mon, 23 Mar 2026 21:11:59 +0900 Subject: [PATCH 2/2] Create reconnect-jitter --- .changes/reconnect-jitter | 1 + 1 file changed, 1 insertion(+) create mode 100644 .changes/reconnect-jitter diff --git a/.changes/reconnect-jitter b/.changes/reconnect-jitter new file mode 100644 index 000000000..11cc00a12 --- /dev/null +++ b/.changes/reconnect-jitter @@ -0,0 +1 @@ +patch type="fixed" "Add jitter to reconnect retry delays"