@mos-connection/connector
Version:
MOS compliant TCP/IP Socket connection.
107 lines • 3.29 kB
TypeScript
import { EventEmitter } from 'eventemitter3';
import { SocketConnectionEvent } from './socketConnection';
import { MosModel } from '@mos-connection/helper';
import { HandedOverQueue } from './NCSServerConnection';
import { ParsedMosMessage } from './mosMessageParser';
export type CallBackFunction = (data: {
error: Error | string;
} | {
reply: ParsedMosMessage;
}) => void;
export interface QueueMessage {
time: number;
msg: MosModel.MosMessage;
}
export interface MosSocketClientEvents {
[SocketConnectionEvent.CONNECTED]: () => void;
[SocketConnectionEvent.DISCONNECTED]: () => void;
[SocketConnectionEvent.DISPOSED]: () => void;
[SocketConnectionEvent.ALIVE]: () => void;
error: (error: Error) => void;
warning: (warning: string) => void;
rawMessage: (...args: any[]) => void;
}
export declare class MosSocketClient extends EventEmitter<MosSocketClientEvents> {
private _host;
private _port;
private _autoReconnect;
private _reconnectDelay;
private _reconnectAttempts;
private _debug;
private _strict;
private _description;
private _client;
private _shouldBeConnected;
private _connected;
private _lastConnectionAttempt;
private _reconnectAttempt;
private _connectionAttemptTimer;
private _commandTimeout;
private _queueCallback;
private _lingeringCallback;
private _queueMessages;
private _sentMessage;
private _sentMessageTimeout?;
private _lingeringMessage;
private _timedOutCommands;
private processQueueTimeout?;
private queueCleanupTimeout?;
private _disposed;
private messageParser;
/** */
constructor(host: string, port: number, description: string, timeout: number, debug: boolean, strict: boolean);
/** */
set autoReconnect(autoReconnect: boolean);
/** */
set autoReconnectInterval(autoReconnectInterval: number);
/** */
set autoReconnectAttempts(autoReconnectAttempts: number);
/** */
connect(): void;
get isConnected(): boolean;
/** */
disconnect(): void;
queueCommand(message: MosModel.MosMessage, cb: CallBackFunction, time?: number): void;
processQueue(): void;
/**
* Returns a queue of messages to be executed by a different connection.
* Will exclude hearbeats from the returned queue. The heartbeats must stay inside
* the internal queue because they are needed for the connection lifecycle.
*/
handOverQueue(): HandedOverQueue;
/** */
get host(): string;
/** */
get port(): number;
/** */
dispose(): void;
/**
* convenience wrapper to expose all logging calls to parent object
*/
log(...args: any[]): void;
setDebug(debug: boolean): void;
/** */
private set connected(value);
/** */
private get connected();
private _sendReply;
/** */
private executeCommand;
/** */
private _autoReconnectionAttempt;
/** */
private _clearConnectionAttemptTimer;
/** */
private _onConnected;
/** */
private _onData;
private _handleMessage;
private _getMessageId;
/** */
private _onError;
/** */
private _onClose;
private _triggerQueueCleanup;
private debugTrace;
}
//# sourceMappingURL=mosSocketClient.d.ts.map