metaapi.cloud-sdk
Version:
SDK for MetaApi, a professional cloud forex API which includes MetaTrader REST API and MetaTrader websocket API. Supports both MetaTrader 5 (MT5) and MetaTrader 4 (MT4). CopyFactory copy trading API included. (https://metaapi.cloud)
102 lines (85 loc) • 2.83 kB
TypeScript
import { MetatraderSymbolPrice } from "../clients/metaApi/metaApiWebsocket.client";
import SynchronizationListener, { HealthStatus } from "../clients/metaApi/synchronizationListener";
import StreamingMetaApiConnection from "./streamingMetaApiConnection";
/**
* Tracks connection health status
*/
export default class ConnectionHealthMonitor extends SynchronizationListener {
/**
* Constructs the listener
* @param {StreamingMetaApiConnection} connection MetaApi connection instance
*/
constructor(connection: StreamingMetaApiConnection);
/**
* Starts health monitor
*/
start(): void;
/**
* Stops health monitor
*/
stop(): void;
/**
* Invoked when a symbol price was updated
* @param {string} instanceIndex index of an account instance connected
* @param {MetatraderSymbolPrice} price updated MetaTrader symbol price
*/
onSymbolPriceUpdated(instanceIndex: string, price: MetatraderSymbolPrice): Promise<any>;
/**
* Invoked when a server-side application health status is received from MetaApi
* @param {string} instanceIndex index of an account instance connected
* @param {HealthStatus} status server-side application health status
* @return {Promise} promise which resolves when the asynchronous event is processed
*/
onHealthStatus(instanceIndex: string, status: HealthStatus): Promise<any>;
/**
* Invoked when connection to MetaTrader terminal terminated
* @param {string} instanceIndex index of an account instance connected
* @return {Promise} promise which resolves when the asynchronous event is processed
*/
onDisconnected(instanceIndex: string): Promise<any>;
/**
* Returns server-side application health status
* @return {HealthStatus} server-side application health status
*/
get serverHealthStatus(): HealthStatus;
/**
* Returns health status
* @returns {ConnectionHealthStatus} connection health status
*/
get healthStatus(): ConnectionHealthStatus;
/**
* Returns uptime in percents measured over specific periods of time
* @returns {Object} uptime in percents measured over specific periods of time
*/
get uptime(): Object;
}
/**
* Connection health status
*/
export declare type ConnectionHealthStatus = {
/**
* flag indicating successful connection to API server
*/
connected: boolean,
/**
* flag indicating successful connection to broker
*/
connectedToBroker: boolean,
/**
* flag indicating that quotes are being streamed successfully from the
* broker
*/
quoteStreamingHealthy: boolean,
/**
* flag indicating a successful synchronization
*/
synchronized: boolean,
/**
* flag indicating overall connection health status
*/
healthy: boolean,
/**
* health status message
*/
message: string
}