Ошибка соединения при повторном соединении
Atom Ответить
15.03.2011


Михаил, подскажите, пожалуйста.. Я решил не использовать встроенный reconnect и написал следующий код:

Код

// подписываемся на событие разрыва соединения
this.Trader.Disconnected += () =>
{
Log.Out("Соединение разорвано.", LogLevel.notice);
if (!_IsDisconnectScheduled)
{
int secToWait = 20;
Log.Out("Ждем " + secToWait + " секунд и восcтанавливаем соединение.", LogLevel.notice);
Thread.Sleep(TimeSpan.FromSeconds(secToWait));
Log.Out("Соединяемся с сервером ...", LogLevel.notice);
this.Trader.Connect();
}
};

// подписываемся на событие успешного соединения
this.Trader.Connected += () =>
{
Log.Out("Соединение установлено.", LogLevel.notice);
...
};


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

Код

15.03.2011 16:30:18 [OpenWealth.StockSharp.TraderInitializator.<Init>b__3] Соединение разорвано.
15.03.2011 16:30:18 [OpenWealth.StockSharp.TraderInitializator.<Init>b__3] Ждем 20 секунд и восcтанавливаем соединение.
15.03.2011 16:30:38 [OpenWealth.StockSharp.TraderInitializator.Connect] Соединяемся с сервером ...
15.03.2011 16:31:52 [OpenWealth.StockSharp.TraderInitializator.Trader_ConnectionError] ERROR: Ошибка соединения System.TimeoutException: Соединение не было установлено в отведенный отрезок времени.
15.03.2011 16:31:52 [OpenWealth.StockSharp.TraderInitializator.<Init>b__2] Соединение установлено.

Теги:


Спасибо:




1 Ответов
Greene-nsk

Фотография
Дата: 15.03.2011
Ответить


Пофиксил. Соединение восстановилось без ошибки, когда запустил восстановление асинхронно:
Код

Log.Out("Ждем " + secToWait + " секунд и восcтанавливаем соединение.", LogLevel.notice);
Common.Async(() =>
{
Thread.Sleep(TimeSpan.FromSeconds(secToWait));
Log.Out("Соединяемся с сервером ...", LogLevel.notice);
this.Trader.Connect();
});
Автор топика
Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy