UNPKG

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)

78 lines (77 loc) 2.75 kB
/** * Service for managing account replicas based on region latency */ export default class LatencyService { private _websocketClient; private _token; private _connectTimeout; private _latencyCache; private _connectedInstancesCache; private _synchronizedInstancesCache; private _refreshPromisesByRegion; private _waitConnectPromises; private _logger; private _refreshRegionLatencyInterval; /** * Constructs latency service instance * @param {MetaApiWebsocketClient} websocketClient MetaApi websocket client * @param {String} token authorization token * @param {Number} connectTimeout websocket connect timeout in seconds */ constructor(websocketClient: any, token: any, connectTimeout: any); /** * Stops the service */ stop(): void; /** * Returns the list of regions sorted by latency * @returns {String[]} list of regions sorted by latency */ get regionsSortedByLatency(): string[]; /** * Invoked when an instance has been disconnected * @param {String} instanceId instance id */ onDisconnected(instanceId: any): void; /** * Invoked when an account has been unsubscribed * @param {String} accountId account id */ onUnsubscribe(accountId: any): void; /** * Invoked when an instance has been connected * @param {String} instanceId instance id */ onConnected(instanceId: any): Promise<void>; /** * Invoked when an instance has been synchronized * @param {String} instanceId instance id */ onDealsSynchronized(instanceId: any): Promise<void>; /** * Returns the list of currently connected account instances * @param {String} accountId account id * @returns {String[]} list of connected account instances */ getActiveAccountInstances(accountId: any): string[]; /** * Returns the list of currently synchronized account instances * @param {String} accountId account id * @returns {String[]} list of synchronized account instances */ getSynchronizedAccountInstances(accountId: any): string[]; /** * Waits for connected instance * @param {String} accountId account id * @returns {String} instance id */ waitConnectedInstance(accountId: any): Promise<string>; _getAccountInstances(accountId: any): string[]; _getAccountRegions(accountId: any): any[]; _getAccountIdFromInstance(instanceId: any): any; _getRegionFromInstance(instanceId: any): any; _disconnectInstance(instanceId: any): void; _subscribeAccountReplica(accountId: any, region: any): void; _refreshRegionLatencyJob(): Promise<void>; _refreshLatency(region: any): Promise<any>; }