UNPKG

@synerty/vortexjs

Version:

Custom observable data serialisation and routing based on Angular 2+

66 lines (65 loc) 2.26 kB
import { VortexStatusService } from "./VortexStatusService"; import { PayloadEnvelope } from "./PayloadEnvelope"; import { HttpHeaders } from "@angular/common/http"; /** * Server response timeout in milliseconds * @type {number} */ export declare let SERVER_RESPONSE_TIMEOUT_SECONDS: number; export declare enum VortexClientStateE { Idle = 0, Connecting = 1, Online = 2, Closing = 3, Closed = 4 } export declare abstract class VortexClientABC { protected vortexStatusService: VortexStatusService; readonly headers: HttpHeaders; readonly HEART_BEAT_PERIOD_SECONDS = 10; readonly HEART_BEAT_TIMEOUT_SECONDS = 180; readonly RECONNECT_BACKOFF_SECONDS = 10; private beatTimer; private readonly _uuid; private readonly _name; protected readonly _url: string; protected _vortexState: VortexClientStateE; protected _isShutdown: boolean; private serverVortexUuid; private serverVortexName; private processingNetworkStateChange; /** * RapUI VortexService, This class is responsible for sending and receiving payloads to/from * the server. */ protected constructor(vortexStatusService: VortexStatusService, url: string, vortexClientName: string, headers: HttpHeaders); static makeUuid(): string; get url(): string; get uuid(): string; get name(): string; get isConnecting(): boolean; get isClosed(): boolean; get isClosing(): boolean; get isOnline(): boolean; get isShutdown(): boolean; close(): Promise<void>; protected setConnecting(): void; protected setOnline(): void; protected setClosing(): void; protected setClosed(): void; protected setShutdown(): void; protected abstract shutdown(): Promise<void>; reconnect(): Promise<void>; protected beat(): void; protected restartTimer(): void; protected clearBeatTimer(): void; private dead; protected abstract sendVortexMsg(vortexMsgs: string[]): void; send(payloadEnvelope: PayloadEnvelope | PayloadEnvelope[]): Promise<void>; /** * Receive * This should only be called only from VortexConnection * @param payloadEnvelope {Payload} */ protected receive(payloadEnvelope: PayloadEnvelope): void; }