From 801f13445d0f6b792e78bd05b4f48a70531cbc27 Mon Sep 17 00:00:00 2001 From: Johann Kellerman Date: Thu, 15 Sep 2022 20:56:49 +0200 Subject: [PATCH 1/5] Don't hide pong setTimeout references --- packages/core/useWebSocket/index.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/core/useWebSocket/index.ts b/packages/core/useWebSocket/index.ts index bd689dc561d..f787804581e 100644 --- a/packages/core/useWebSocket/index.ts +++ b/packages/core/useWebSocket/index.ts @@ -168,7 +168,7 @@ export function useWebSocket( let bufferedData: (string | ArrayBuffer | Blob)[] = [] - let pongTimeoutWait: ReturnType + let pongTimeoutWait: ReturnType = 0 // Status code 1000 -> Normal Closure https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent/code const close: WebSocket['close'] = (code = 1000, reason) => { @@ -188,7 +188,10 @@ export function useWebSocket( } const resetHeartbeat = () => { - clearTimeout(pongTimeoutWait) + if (pongTimeoutWait > 0) { + clearTimeout(pongTimeoutWait) + pongTimeoutWait = 0 + } } const send = (data: string | ArrayBuffer | Blob, useBuffer = true) => { @@ -267,6 +270,9 @@ export function useWebSocket( const { pause, resume } = useIntervalFn( () => { send(message, false) + if (pongTimeoutWait > 0) { + return + } pongTimeoutWait = setTimeout(() => { // auto-reconnect will be trigger with ws.onclose() close() From 82f363416dca1304849d90ddd90f670a5d1f18eb Mon Sep 17 00:00:00 2001 From: Johann Kellerman Date: Thu, 15 Sep 2022 21:28:25 +0200 Subject: [PATCH 2/5] Update index.ts --- packages/core/useWebSocket/index.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/core/useWebSocket/index.ts b/packages/core/useWebSocket/index.ts index f787804581e..2d62483c916 100644 --- a/packages/core/useWebSocket/index.ts +++ b/packages/core/useWebSocket/index.ts @@ -188,10 +188,8 @@ export function useWebSocket( } const resetHeartbeat = () => { - if (pongTimeoutWait > 0) { - clearTimeout(pongTimeoutWait) - pongTimeoutWait = 0 - } + clearTimeout(pongTimeoutWait) + pongTimeoutWait = 0 } const send = (data: string | ArrayBuffer | Blob, useBuffer = true) => { From c00abe0a02a10137838ea78b49c6d6932f85ebc5 Mon Sep 17 00:00:00 2001 From: Johann Kellerman Date: Fri, 16 Sep 2022 08:36:18 +0200 Subject: [PATCH 3/5] Update index.ts --- packages/core/useWebSocket/index.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/core/useWebSocket/index.ts b/packages/core/useWebSocket/index.ts index 2d62483c916..0c1c585f97e 100644 --- a/packages/core/useWebSocket/index.ts +++ b/packages/core/useWebSocket/index.ts @@ -168,7 +168,7 @@ export function useWebSocket( let bufferedData: (string | ArrayBuffer | Blob)[] = [] - let pongTimeoutWait: ReturnType = 0 + let pongTimeoutWait: ReturnType // Status code 1000 -> Normal Closure https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent/code const close: WebSocket['close'] = (code = 1000, reason) => { @@ -189,7 +189,7 @@ export function useWebSocket( const resetHeartbeat = () => { clearTimeout(pongTimeoutWait) - pongTimeoutWait = 0 + pongTimeoutWait = undefined } const send = (data: string | ArrayBuffer | Blob, useBuffer = true) => { @@ -268,7 +268,7 @@ export function useWebSocket( const { pause, resume } = useIntervalFn( () => { send(message, false) - if (pongTimeoutWait > 0) { + if (typeof(pongTimeoutWait) !== 'undefined') { return } pongTimeoutWait = setTimeout(() => { From af2e0e9e5823ff19169c36d9d1944973ba648e4f Mon Sep 17 00:00:00 2001 From: Johann Kellerman Date: Fri, 16 Sep 2022 08:38:26 +0200 Subject: [PATCH 4/5] Update index.ts --- packages/core/useWebSocket/index.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/core/useWebSocket/index.ts b/packages/core/useWebSocket/index.ts index 0c1c585f97e..1b438639171 100644 --- a/packages/core/useWebSocket/index.ts +++ b/packages/core/useWebSocket/index.ts @@ -268,9 +268,8 @@ export function useWebSocket( const { pause, resume } = useIntervalFn( () => { send(message, false) - if (typeof(pongTimeoutWait) !== 'undefined') { + if (typeof(pongTimeoutWait) !== 'undefined') return - } pongTimeoutWait = setTimeout(() => { // auto-reconnect will be trigger with ws.onclose() close() From 8adeec8d67b855c1184133f36a762b6dac8058ed Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Tue, 25 Oct 2022 13:54:07 +0800 Subject: [PATCH 5/5] Update packages/core/useWebSocket/index.ts --- packages/core/useWebSocket/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/useWebSocket/index.ts b/packages/core/useWebSocket/index.ts index 67dc2ec0132..6c46a4db37e 100644 --- a/packages/core/useWebSocket/index.ts +++ b/packages/core/useWebSocket/index.ts @@ -268,7 +268,7 @@ export function useWebSocket( const { pause, resume } = useIntervalFn( () => { send(message, false) - if (typeof(pongTimeoutWait) !== 'undefined') + if (pongTimeoutWait != null) return pongTimeoutWait = setTimeout(() => { // auto-reconnect will be trigger with ws.onclose()