(this.Trader as SmartTrader).ReConnectionSettings.Interval = TimeSpan.FromSeconds(20);
(this.Trader as SmartTrader).ReConnectionSettings.WorkingTime = Exchange.Test.WorkingTime;
(this.Trader as SmartTrader).ReConnectionSettings.ConnectingAttemptCount = -1;
Подписан на события: this.Trader.Connected this.Trader.Disconnected this.Trader.ProcessDataError this.Trader.ConnectionError
Запускаю, отключаю свой вайфай через который раздается инет, через минуту получаю this.Trader.Disconnected. Жду 5 минут - ничего не происходит. Включаю инет обратно, жду 5 минут - ничего не происходит.
Comentarios (18)
Iniciar sesión o Crear cuenta, Inicie sesión o regístrese para dejar un comentario
[3.0.16]
ConnectingAttemptCount - это для первоначального соединения. Протестил у себя (выключил адаптер, подождал ConnectionError, кстати, без Disconnected) - у меня все поднялось штатно.
Мне надо как-то решить эту проблему. При реальной торговле тоже это периодически происходит. Никакого ConnectionError не приходит. Просто ITrader.Disconnected. И соединение после этого не восстанавливается, можно ждать хоть несколько часов.
Если приходит Disconnected, то переподключение не будет работать. Оно работает только в случае ошибок. Вы точно принудительно не отключаетесь от SmartCOM? Подпишитесь как здесь показали на событие Disconnected у StClient. Интересна причина разрыва.
reason приходит пустой. Как насчет восстановления, описанного в моем предыдущем посте? Перезапускать регистрацию?
Это значит штатное отсоединение. Вы Dispose, Disconnect где-то вызываете?
Не вызываю. Когда вызывается Disconnect(), приходит Reason: disconnected by user.
Сначала разберемся что к чему, потом я точечно исправлю.🙂
Вообще, вы же знаете когда зовется Dispose или Disconnect. Почему бы во всех остальных случаях не звать reconnect?
Это будет правильно с точки зрения дизайна - четко понять когда ошибка, а когда ее нет.
У меня есть подозрение, что главная проблема здесь не в том, почему вылазит Disconnect без ошибки, а в том, почему не приходит ConnectionError. Я выставил следующие настройки для ReConnection:
Ожидал, что каждые 20 секунд соединение будет проверяться и если его нет - будет ошибка. Я отключаю интернет, и больше минуты ничего не приходит. Только потом приходит Disconnected и все.
Возьмите последнюю версию.
Отлично. Реконнектится.
Теперь другая проблема. После реконнекта "слетают" RegisterTrades, RegisterSecurity, RegisterQuotes. Экспорт я стартую.
Конкретно эти события нужно запускать самостоятельно.
Также я пробовал заменить автоматический реконнект своим, раз уж он не работает:
После такого восстановления соединение восстанавливается, но события перестают приходить. Это описано в http://stocksharp.com/forum/1446/sobytiia-nie-prikhodiat-poslie-riestarta-soiedinieniia/ . Видимо регистрация слетает , и надо заново регистрировать все бумаги?
Я же там ответил насчет инструментов и портфелей.
Каждый день ровно в 6:00 по Москве связь разрывается, и потом не поднимается. Идет куча ошибок Сервер RPC недоступен. Тоже самое часто происходит просто при разрыве связи - соединение не восстанавливается.
Пока не понял, почему Смарт иногда поднимается, а иногда нет.