useWebSocket

A hook for WebSocket.

When multiple components establish the same WebSocket connection at the same time, they reuse the same WebSocket instance.

Examples

Default usage

readyState:1

received message:

Default usage

Establishing a WebSocket connection

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: Accessor<WebSocketEventMap['message'] | undefined>;  sendMessage: WebSocket['send'];  disconnect: () => void;  connect: () => void;  readyState: Accessor<ReadyState>;  webSocketIns: () => WebSocket | null;}useWebSocket(socketUrl: string, options?: Options): Result;
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: Accessor<WebSocketEventMap['message'] | undefined>;  sendMessage: WebSocket['send'];  disconnect: () => void;  connect: () => void;  readyState: Accessor<ReadyState>;  webSocketIns: () => WebSocket | null;}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 messageAccessor<WebSocketEventMap['message'] | undefined>
sendMessageSend message functionWebSocket['send']
disconnectDisconnect webSocket manually() => void
connectConnect webSocket manually. If already connected, close the current one and reconnect.() => void
readyStateCurrent webSocket connection statusAccessor<ReadyState>
webSocketInsWebSocket instance() => WebSocket | null