@stomp/stompjs
Version: 
STOMP client for Javascript and Typescript
168 lines (167 loc) • 4.43 kB
TypeScript
import { IFrame } from './i-frame.js';
import { IMessage } from './i-message.js';
import { StompHeaders } from './stomp-headers.js';
import { Versions } from './versions.js';
/**
 * This callback will receive a `string` as a parameter.
 *
 * Part of `@stomp/stompjs`.
 */
export declare type debugFnType = (msg: string) => void;
/**
 * This callback will receive a {@link IMessage} as parameter.
 *
 * Part of `@stomp/stompjs`.
 */
export declare type messageCallbackType = (message: IMessage) => void;
/**
 * This callback will receive a {@link IFrame} as parameter.
 *
 * Part of `@stomp/stompjs`.
 */
export declare type frameCallbackType = ((frame: IFrame) => void) | (() => void);
/**
 * This callback will receive a [CloseEvent]{@link https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent}
 * as parameter.
 *
 * Part of `@stomp/stompjs`.
 */
export declare type closeEventCallbackType<T = any> = (evt: T) => void;
/**
 * This callback will receive an [Event]{@link https://developer.mozilla.org/en-US/docs/Web/API/Event}
 * as parameter.
 *
 * Part of `@stomp/stompjs`.
 */
export declare type wsErrorCallbackType<T = any> = (evt: T) => void;
/**
 * Parameters for [Client#publish]{@link Client#publish}.
 * Aliased as publishParams as well.
 *
 * Part of `@stomp/stompjs`.
 */
export interface IPublishParams {
    /**
     * destination end point
     */
    destination: string;
    /**
     * headers (optional)
     */
    headers?: StompHeaders;
    /**
     * body (optional)
     */
    body?: string;
    /**
     * binary body (optional)
     */
    binaryBody?: Uint8Array;
    /**
     * By default, a `content-length` header will be added in the Frame to the broker.
     * Set it to `true` for the header to be skipped.
     */
    skipContentLengthHeader?: boolean;
}
/**
 * Backward compatibility, switch to {@link IPublishParams}.
 */
export declare type publishParams = IPublishParams;
/**
 * Used in {@link IRawFrameType}
 *
 * Part of `@stomp/stompjs`.
 *
 * @internal
 */
export declare type RawHeaderType = [string, string];
/**
 * The parser yield frames in this structure
 *
 * Part of `@stomp/stompjs`.
 *
 * @internal
 */
export interface IRawFrameType {
    command: string | undefined;
    headers: RawHeaderType[];
    binaryBody: Uint8Array | undefined;
}
/**
 * @internal
 */
export interface IStompSocketMessageEvent {
    data?: string | ArrayBuffer;
}
/**
 * Copied from Websocket interface to avoid dom typelib dependency.
 *
 * @internal
 */
export interface IStompSocket {
    url: string;
    onclose: ((ev?: any) => any) | undefined | null;
    onerror: ((ev: any) => any) | undefined | null;
    onmessage: ((ev: IStompSocketMessageEvent) => any) | undefined | null;
    onopen: ((ev?: any) => any) | undefined | null;
    terminate?: (() => any) | undefined | null;
    /**
     * Returns a string that indicates how binary data from the socket is exposed to scripts:
     * We support only 'arraybuffer'.
     */
    binaryType?: string;
    /**
     * Returns the state of the socket connection. It can have the values of StompSocketState.
     */
    readonly readyState: number;
    /**
     * Closes the connection.
     */
    close(): void;
    /**
     * Transmits data using the connection. data can be a string or an ArrayBuffer.
     */
    send(data: string | ArrayBuffer): void;
}
/**
 * Possible states for the IStompSocket
 */
export declare enum StompSocketState {
    CONNECTING = 0,
    OPEN = 1,
    CLOSING = 2,
    CLOSED = 3
}
/**
 * Possible activation state
 */
export declare enum ActivationState {
    ACTIVE = 0,
    DEACTIVATING = 1,
    INACTIVE = 2
}
/**
 * @internal
 */
export interface IStomptHandlerConfig {
    debug: debugFnType;
    stompVersions: Versions;
    connectHeaders: StompHeaders;
    disconnectHeaders: StompHeaders;
    heartbeatIncoming: number;
    heartbeatOutgoing: number;
    splitLargeFrames: boolean;
    maxWebSocketChunkSize: number;
    forceBinaryWSFrames: boolean;
    logRawCommunication: boolean;
    appendMissingNULLonIncoming: boolean;
    discardWebsocketOnCommFailure: boolean;
    onConnect: frameCallbackType;
    onDisconnect: frameCallbackType;
    onStompError: frameCallbackType;
    onWebSocketClose: closeEventCallbackType;
    onWebSocketError: wsErrorCallbackType;
    onUnhandledMessage: messageCallbackType;
    onUnhandledReceipt: frameCallbackType;
    onUnhandledFrame: frameCallbackType;
}