vue-hooks-plus
Version:
Vue hooks library
32 lines (31 loc) • 1.17 kB
TypeScript
import { Ref } from 'vue';
export declare enum ReadyState {
Connecting = 0,
Open = 1,
Closing = 2,
Closed = 3
}
export interface UseWebSocketOptions {
reconnectLimit?: number;
reconnectInterval?: number;
manual?: Ref<boolean> | boolean;
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[];
}
export interface UseWebSocketResult {
latestMessage: Readonly<Ref<WebSocketEventMap['message'] | undefined>>;
sendMessage?: WebSocket['send'];
disconnect?: () => void;
connect?: () => void;
readyState: Readonly<Ref<ReadyState>>;
webSocketIns?: WebSocket;
}
/**
* @param socketUrl socketUrl地址
* @param options 配置
* @return readyState(Connecting = 0,Open = 1,Closing = 2,Closed = 3)
*/
export default function useWebSocket(socketUrl: Ref<string> | string, options?: UseWebSocketOptions): UseWebSocketResult;