Skip to content

Commit 27bc726

Browse files
committed
feat: randomize reconnect and watch checks.
1 parent 268f23e commit 27bc726

File tree

4 files changed

+5
-4
lines changed

4 files changed

+5
-4
lines changed

src/connection/client.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ export class OpenFeedClient implements IOpenFeedClient {
176176

177177
// eslint-disable-next-line no-await-in-loop
178178
await new Promise((resolve) => {
179-
setTimeout(resolve, TIME.RECONNECT);
179+
setTimeout(resolve, TIME.RECONNECT + Math.floor(Math.random() * TIME.RECONNECT_RANDOMIZE));
180180
});
181181
}
182182
};

src/connection/connection.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ export class OpenFeedConnection implements IOpenFeedConnection {
5252
let timeoutId = null;
5353

5454
const waitPromise = new Promise((resolve) => {
55-
timeoutId = setTimeout(resolve, TIME.CONNECTION_TIMEOUT);
55+
timeoutId = setTimeout(resolve, TIME.CONNECTION_TIMEOUT + Math.floor(Math.random() * TIME.RECONNECT_RANDOMIZE));
5656
});
5757

5858
try {

src/utilities/constants.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
export const TIME = {
22
RECONNECT: 5_000,
3+
RECONNECT_RANDOMIZE: 5_000,
34
CONNECTION_TIMEOUT: 15_000,
45
SUBSCRIPTION_RETRY: 100,
56
};

test/client.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@ describe("OpenFeedClient", () => {
6464
});
6565

6666
afterEach(() => {
67-
client.dispose();
6867
jest.clearAllMocks();
68+
client.dispose();
6969
});
7070

7171
it("should handle login flow correctly", async () => {
@@ -185,7 +185,7 @@ describe("OpenFeedClient", () => {
185185

186186
// Use fake timers to fast-forward the reconnect delay
187187
jest.useFakeTimers();
188-
await jest.advanceTimersByTimeAsync(TIME.RECONNECT);
188+
await jest.advanceTimersByTimeAsync(TIME.RECONNECT + TIME.RECONNECT_RANDOMIZE);
189189
jest.useRealTimers();
190190

191191
expect(disconnectSpy).toHaveBeenCalledTimes(1);

0 commit comments

Comments
 (0)