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
TypeScript
/**
* 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>;
}