Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit a72c02e

Browse files
SnowGuestantfu
andauthored
feat(useWebsocket): support ref or getter as message (#4116)
Co-authored-by: Anthony Fu <[email protected]> Co-authored-by: Anthony Fu <[email protected]>
1 parent e1833d0 commit a72c02e

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

packages/core/useWebSocket/index.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import type { Fn, MaybeRefOrGetter } from '@vueuse/shared'
22
import type { Ref } from 'vue'
3-
import { isClient, isWorker, toRef, tryOnScopeDispose, useIntervalFn } from '@vueuse/shared'
3+
import { isClient, isWorker, toRef, toValue, tryOnScopeDispose, useIntervalFn } from '@vueuse/shared'
44
import { ref, watch } from 'vue'
55
import { useEventListener } from '../useEventListener'
66

77
export type WebSocketStatus = 'OPEN' | 'CONNECTING' | 'CLOSED'
8+
export type WebSocketHeartbeatMessage = string | ArrayBuffer | Blob
89

910
const DEFAULT_PING_MESSAGE = 'ping'
1011

@@ -25,12 +26,12 @@ export interface UseWebSocketOptions {
2526
*
2627
* @default 'ping'
2728
*/
28-
message?: string | ArrayBuffer | Blob
29+
message?: MaybeRefOrGetter<WebSocketHeartbeatMessage>
2930

3031
/**
3132
* Response message for the heartbeat, if undefined the message will be used
3233
*/
33-
responseMessage?: string | ArrayBuffer | Blob
34+
responseMessage?: MaybeRefOrGetter<WebSocketHeartbeatMessage>
3435

3536
/**
3637
* Interval, in milliseconds
@@ -262,7 +263,7 @@ export function useWebSocket<Data = any>(
262263
message = DEFAULT_PING_MESSAGE,
263264
responseMessage = message,
264265
} = resolveNestedOptions(options.heartbeat)
265-
if (e.data === responseMessage)
266+
if (e.data === toValue(responseMessage))
266267
return
267268
}
268269

@@ -280,7 +281,7 @@ export function useWebSocket<Data = any>(
280281

281282
const { pause, resume } = useIntervalFn(
282283
() => {
283-
send(message, false)
284+
send(toValue(message), false)
284285
if (pongTimeoutWait != null)
285286
return
286287
pongTimeoutWait = setTimeout(() => {

0 commit comments

Comments
 (0)