← Назад

Событие QuikConnected.

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

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

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

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

Комментарии (8)

Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий

Mikhail Sukhov
Mikhail Sukhov

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

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

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

Maxim
Maxim Автор

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

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 Автор

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

Mikhail Sukhov
Mikhail Sukhov

О чем речь?

Maxim
Maxim Автор

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