@synerty/vortexjs
Version:
Custom observable data serialisation and routing based on Angular 2+
61 lines (60 loc) • 2.03 kB
TypeScript
import { VortexStatusService } from "./VortexStatusService";
import { PayloadEnvelope } from "./PayloadEnvelope";
/**
* 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,
Shutdown = 5
}
export declare abstract class VortexClientABC {
protected vortexStatusService: VortexStatusService;
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;
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);
static makeUuid(): string;
get url(): string;
get uuid(): string;
get name(): string;
get isClosed(): boolean;
get isClosing(): boolean;
get isOnline(): boolean;
get isShutdown(): boolean;
close(): Promise<void>;
protected setOnline(): void;
protected setClosing(): void;
protected setClosed(): 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;
}