Synchronization started#
About#
Notifies consumer that terminal state synchronization is started.
For more information see AsyncApi documentation
Description#
This event is emitted by MetaApi upon initial terminal state synchronization
The message below can be received from the synchronization
event.
Name | Type | Required | Description |
---|---|---|---|
type | string | Yes | The value of this field will be synchronizationStarted |
synchronizationId | string | Yes | Id of the synchronization request |
accountId | string | Yes | account id specified in the request |
sequenceNumber | number | Yes | an ordinal number of the packet. Increases by 1 with each new packet. Starts with 0 in every new session. Can be used to check for packet loss during synchronization. |
sequenceTimestamp | number | Yes | an ordinal number of packets, but this field is increased by a random number in each new packet. Always increases regardless of the session. |
specificationsUpdated | boolean | flag indicating that specifications update will be streamed | |
positionsUpdated | boolean | flag indicating that positions update will be streamed | |
ordersUpdated | boolean | flag indicating that orders update will be streamed | |
specificationsHashIndex | number | index number of matching specifications hash | |
positionsHashIndex | number | index number of matching positions hash | |
ordersHashIndex | number | index number of matching orders hash |
Code example:
import ioClient from 'socket.io-client';
const socket = ioClient('https://mt-client-api-v1.agiliumtrade.agiliumtrade.ai', {
path: '/ws',
reconnection: false,
query: {
'auth-token': 'token'
}
});
const request = {
accountId: '865d3a4d-3803-486d-bdf3-a85679d9fad2',
type: 'synchronize',
requestId: '57bfbc9f-108d-4131-a300-5f7d9e69c11b',
startingDealTime: '2019-01-13T10:29:26.000Z',
startingHistoryOrderTime: '2019-01-13T10:29:26.000Z'
};
socket.on('connect', () => {
socket.emit('request', request);
});
socket.on('synchronization', data => {
console.log(data);
if (data.type === 'authenticated') {
request.requestId = uuid.v4();
socket.emit('request', request);
}
});
socket.on('processingError', err => {
console.error(err);
});
An example of a synchronization payload:
{
"type": "synchronizationStarted",
"synchronizationId": "57bfbc9f-108d-4131-a300-5f7d9e69c11b",
"accountId": "865d3a4d-3803-486d-bdf3-a85679d9fad2",
"specificationsUpdated": true,
"positionsUpdated": true,
"ordersUpdated": true
}