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


Ошибка соединения при повторном соединении
Atom
3/15/2011


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

Code

// подписываемся на событие разрыва соединения
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);
...
};


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

Code

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] Соединение установлено.

Tags:


Thanks:


Greene-nsk

Avatar
Date: 3/15/2011
Reply


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

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


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy