shadcn-ahooks

useWebSocket

A hook for WebSocket.

Overview

A hook for WebSocket.

Documentation and Examples

Installation

Open in
pnpm dlx shadcn@latest add https://shadcn-ahooks.vercel.app/r/useWebSocket.json
npx shadcn@latest add https://shadcn-ahooks.vercel.app/r/useWebSocket.json
yarn shadcn@latest add https://shadcn-ahooks.vercel.app/r/useWebSocket.json
bun shadcn@latest add https://shadcn-ahooks.vercel.app/r/useWebSocket.json

A hook for WebSocket.

Examples

Default usage

API

enum ReadyState {
  Connecting = 0,
  Open = 1,
  Closing = 2,
  Closed = 3,
}

interface Options {
  reconnectLimit?: number;
  reconnectInterval?: number;
  onOpen?: (event: WebSocketEventMap['open'], instance: WebSocket) => void;
  onClose?: (event: WebSocketEventMap['close'], instance: WebSocket) => void;
  onMessage?: (message: WebSocketEventMap['message'], instance: WebSocket) => void;
  onError?: (event: WebSocketEventMap['error'], instance: WebSocket) => void;
  protocols?: string | string[];
}

interface Result {
  latestMessage?: WebSocketEventMap['message'];
  sendMessage: WebSocket['send'];
  disconnect: () => void;
  connect: () => void;
  readyState: ReadyState;
  webSocketIns?: WebSocket;
}

useWebSocket(socketUrl: string, options?: Options): Result;

Params

PropertyDescriptionTypeDefault
socketUrlRequired, webSocket urlstring-
optionsconnect the configuration itemOptions-

Options

Options PropertyDescriptionTypeDefault
onOpenThe webSocket connect callback(event: WebSocketEventMap['open'], instance: WebSocket) => void-
onCloseWebSocket close callback(event: WebSocketEventMap['close'], instance: WebSocket) => void-
onMessageWebSocket receive message callback(message: WebSocketEventMap['message'], instance: WebSocket) => void-
onErrorWebSocket error callback(event: WebSocketEventMap['error'], instance: WebSocket) => void-
reconnectLimitRetry timesnumber3
reconnectIntervalRetry interval(ms)number3000
manualManually starts connectionbooleanfalse
protocolsSub protocolsstring | string[]-

Result

Options PropertyDescriptionType
latestMessageLatest messageWebSocketEventMap['message']
sendMessageSend message functionWebSocket['send']
disconnectDisconnect webSocket manually() => void
connectConnect webSocket manually. If already connected, close the current one and reconnect.() => void
readyStateCurrent webSocket connection statusReadyState
webSocketInsWebSocket instanceWebSocket

On this page