UNPKG

webstomp-obs

Version:

Stomp over websocket using observable

61 lines (52 loc) 1.9 kB
import { Observable } from 'rxjs/Observable'; import { Subject } from 'rxjs/Subject'; import Frame from './frame'; import { ACK, AckHeaders, NackHeaders, ConnectionHeaders, DisconnectHeaders, SubscribeHeaders, UnsubscribeHeaders } from './headers'; import { HeartbeatOptions } from './heartbeat'; export interface IWebSocketHandler<T> { initConnection: (headers: ConnectionHeaders) => Observable<T>; } export interface IEvent { data: any; } export interface IWebSocketObservable { messageReceived: Observable<IEvent>; messageSender: Subject<any>; } export interface IProtocol { getMessageId: (frame: Frame) => string, getSubscription: (frame: Frame) => string, connect: (headers: ConnectionHeaders) => any, disconnect: (headers: DisconnectHeaders) => any, send: (headers: any, body: any) => any; begin: (transaction: any) => any; commit: (transaction: string) => any; abort: (transaction: string) => any; ack: (messageID: string, subscription: string, headers?: AckHeaders) => any; nack?: (messageID: string, subscription: string, headers?: NackHeaders) => any; subscribe: (headers: SubscribeHeaders) => any; unSubscribe: (headers: UnsubscribeHeaders) => any; hearbeatMsg?: () => any; } export interface IConnectedObservable { messageReceipted: Observable<Frame>; errorReceived: Observable<Frame>; subscribeTo: (destination: string, headers: {id?: string, ack?: ACK}) => Observable<Frame>; messageSender: Subject<any>; protocol: IProtocol; } export interface WsOptions { binary: boolean; heartbeat: HeartbeatOptions | boolean; debug: boolean; } export interface IWebSocket { binaryType: string, onmessage: Function, onclose: Function, onopen: Function, close: Function, send: Function, url: string }