From a4bc9c627464a43ee32d711fd1e3de1ba562bc02 Mon Sep 17 00:00:00 2001 From: huangyan321 <1604549268@qq.com> Date: Mon, 4 Sep 2023 00:20:37 +0800 Subject: [PATCH] fix(useWebSocket): ssr support --- packages/core/useWebSocket/index.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/core/useWebSocket/index.ts b/packages/core/useWebSocket/index.ts index cb281892e24..bbbfc2a90a4 100644 --- a/packages/core/useWebSocket/index.ts +++ b/packages/core/useWebSocket/index.ts @@ -1,7 +1,7 @@ import type { Ref } from 'vue-demi' import { ref, watch } from 'vue-demi' import type { Fn, MaybeRefOrGetter } from '@vueuse/shared' -import { toRef, tryOnScopeDispose, useIntervalFn } from '@vueuse/shared' +import { isClient, toRef, tryOnScopeDispose, useIntervalFn } from '@vueuse/shared' import { useEventListener } from '../useEventListener' export type WebSocketStatus = 'OPEN' | 'CONNECTING' | 'CLOSED' @@ -186,7 +186,7 @@ export function useWebSocket( // Status code 1000 -> Normal Closure https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent/code const close: WebSocket['close'] = (code = 1000, reason) => { - if (!wsRef.value) + if (!isClient || !wsRef.value) return explicitlyClosed = true resetHeartbeat() @@ -288,11 +288,13 @@ export function useWebSocket( } if (autoClose) { - useEventListener(window, 'beforeunload', () => close()) + useEventListener('beforeunload', () => close()) tryOnScopeDispose(close) } const open = () => { + if (!isClient) + return close() explicitlyClosed = false retried = 0