← Zurück

Событие QuikConnected.

Добрый вечер. В предыдущих версиях библиотеки было события ConnectionChanged, которое при разрыве связи с сервером делало исключение с кодом QuikDisconnected. А если соединение восстанавливалось, то с кодом QuikConnected.

В текущей реализации появляется исключение только при разрыве соединения с сервером (QuikDisconnected). А при обратном соединении никаких исключений в событии BaseTrader.ConnectionError не появляется.

Это нововведение или баг?

Как узнать о восстановлении соединения, если оно было перед этим потеряно?

War dieses Thema hilfreich?

Thema teilen

Kommentare (8)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Mikhail Sukhov
Mikhail Sukhov

Нововведение. Есть три события:

Connected - соединение установлено (первый раз или после разрыва). Disconnected - соединение разорвано программой. ConnectionError - соединение разорвано по ошибке.

Есть еще событие ReConnectionManager.ConnectionRestored. По всей видимости, его Вы и ищете.

Maxim
Maxim Autor

Спасибо за ответ.

ReConnectionManager -- это не то что мне нужно. Считаю, что если произошел сбой где либо, то необходимо все закрыть и уведомить пользователя (по СМС например). А дальше пользователь должен реагировать и разбираться, в чем проблема (в Квике, в программе, в сервере, в магнитных бурях...)

В этих случаях ReConnectionManager считаю ненадежно и рискованно использовать.

Единственный случай, который можно обрабатывать автоматически -- это разрыв связи Квика с сервером. В этом случае в принципе ничего делать не нужно, надо только уведомить пользователя о разрыве соединение, и о его восстановлении.

BaseTrader.ConnectionError позволяет обработать событие разрыва, а вот когда соединение восстанавливается -- не позволяет. Жаль. А раньше можно было.

Mikhail Sukhov
Mikhail Sukhov

Событие восстановления - это ITrader.Connected и ReConnectionManager.ConnectionRestored. А почему последнее не подходит? Чудо он конечно не сделает, но информирует стабильно.

sergun
sergun

Скажите, а нужно ли в дополнение к ReConnectionManager реализовывать некоторую логику для возобновления экспорта по DDE? Или проблем с DDE при "обрывах" не будет?

Mikhail Sukhov
Mikhail Sukhov

Если квик падает, то нужно. Если нет, то не нужно. Признака упал квик или нет у меня нет. Но можно после перезапуска воспользоваться событиемhttp://stocksharp.com/doc/help/html/E_Ecng_Trading_Algo_ReConnectionManager_ExportTimeOut.htm. А если по простому, то просто всегда перезапускайте.

Maxim
Maxim Autor

Я бы то же оставил как есть. Так как написана программа у меня с учетом того, что есть сейчас. Не очень хочется переписывать логику.

Mikhail Sukhov
Mikhail Sukhov

О чем речь?

Maxim
Maxim Autor

Сори. Ошибся веткой. Этот ответ был касательно нововведений о состояние заявок.