Для изменения размера нажмите или перетащите

Настройки переподключения

Все коннекторы предоставляют возможность настраивать переподключение на случай разрыва соединения. В графическом элементе Окно настройки подключений это выглядит следующим образом:

API GUI ReconnectionSettings

Свойтва переподключения

  • Интервал - Интервал, с которым будут происходить попытки подключения.
  • Первоначально - Количество попыток установить первоначальное соединение, если оно не было установлено (тайм-аут, сетевой сбой и тд).
  • Переподключение - Количество попыток переподключиться, если подключение было разорвано в процессе работы.
  • Время ожидания - Время ожидания успешного подключения/отключения.
  • Режим работы - Режим работы, во время которого необходимо производить подключения.

Механизм переподключения настраивается через свойство ConnectorReConnectionSettings и позволяет отслеживать следующие сценарии ошибок:

  1. При создании шлюза необходимо проинициализировать настройки механизма переподключений через свойство ConnectorReConnectionSettings:

    C#
    // инициализируем механизм переподключения (будет автоматически соединяться
    // каждые 10 секунд, если шлюз потеряется связь с сервером)
    Connector.ReConnectionSettings.Interval = TimeSpan.FromSeconds(10);
    
    // переподключение будет работать только во время работы биржи РТС
    // (чтобы отключить переподключение когда торгов нет штатно, например, ночью)
    Connector.ReConnectionSettings.WorkingTime = Exchange.Rts.WorkingTime;
  2. Чтобы проверить, как работает механизм контроля соединения, можно выключить подключение к Интернету:

    transactions

  3. Ниже приведен лог программы, в котором видно, что приложение изначально находиться в подключенном состоянии, а после выключения интернета приложение пытается переподключиться. После восстановления интернета восстанавливается подключение приложения:

    API ReconnectionLog

  4. Так как в Connector может использоваться несколько подключений, то по умолчанию события связанные с переподключением такие как ConnectorRestored не вызываются, а адаптеры подключений самостоятельно пытаются переподключиться. Для того чтобы событие начало вызываться необходимо у адаптера выставить свойство BasketMessageAdapterSuppressReconnectingErrors в false.

    C#
    Connector.Adapter.SuppressReconnectingErrors = false;
    Connector.ConnectionError += error => this.Sync(() => MessageBox.Show(this, "Соединение потеряно"));
    Connector.Restored += () => this.Sync(() => MessageBox.Show(this, "Соединение восстановлено"));

    sampleconnectionerror
    sampleconnectionrestore