Здравствуйте!
Использую версию 4.2.2.10, пример SamplePlaza.
Включаю приложение с запущенным интернетом, роутер запущен на локальном компьютере. Подключаюсь, начинаю получать данные. Отключаю интернет, данные не приходят естественно. Но приложение не понимает, что нет соединения с Плазой. Через 25-30 секунд появляется сообщение(2 шт.)
Цитата:System.InvalidOperationException: Подключение в состоянии Connected получило неожиданное сообщение типа 'ConnectMessage'. ---> System.InvalidOperationException: Соединение потеряно. Состояние соединения Error.
--- Конец трассировки внутреннего стека исключений
При этом состояние Trader.ConnectionState остается Connected.
Нажатие "Отключиться" переводит Trader в состояние Disconnecting и в этом положении и зависает.
Если "Отключиться" не нажимать, а подключить интернет, то данные после ошибки не обновляются.
Если же включить интернет через несколько секунд после отключения(опытным путем установлено, что время должно быть меньше примерно 13 секунд), то никаких ошибок нет и данные начинают дальше приходить.
Если включить интернет через некоторое количество секунд, большее 13, то можно добиться варианта, когда данных нет и ошибок тоже никаких нет.
В логах появляется после отключения интернета (примерно через 25 секунд) следующее:
Цитата:
2014/02/19 00:51:10.446| |PlazaConnectionPool|OnConnectionStatusChanged: conn SS_3 - status: Error
2014/02/19 00:51:10.446| |PlazaStreamMessageAdapter|PlazaStream RTS_INDEX_REPL:Закрытие потока.
2014/02/19 00:51:10.446| |PlazaConnectionPool|OnConnectionStatusChanged: conn SS_0 - status: Error
2014/02/19 00:51:10.446| |PlazaConnectionPool|OnConnectionStatusChanged: conn SS_2 - status: Error
2014/02/19 00:51:10.446| |PlazaConnectionPool|OnConnectionStatusChanged: conn SS_4 - status: Error
2014/02/19 00:51:10.446| |PlazaStreamMessageAdapter|PlazaStream FORTS_FUTTRADE_REPL:Закрытие потока.
2014/02/19 00:51:10.446| |PlazaStreamMessageAdapter|PlazaStream FORTS_FUTAGGR5_REPL:Закрытие потока.
2014/02/19 00:51:10.447| |PlazaStreamMessageAdapter|PlazaStream FORTS_FUTAGGR5_REPL:StreamStateChanged: State Closed
2014/02/19 00:51:10.447| |PlazaStreamMessageAdapter|PlazaStream FORTS_OPTAGGR5_REPL:Закрытие потока.
2014/02/19 00:51:10.447| |PlazaStreamMessageAdapter|PlazaStream RTS_INDEX_REPL:StreamStateChanged: State Closed
2014/02/19 00:51:10.447| |PlazaStreamMessageAdapter|PlazaStream FORTS_FUTTRADE_REPL:StreamStateChanged: State Closed
2014/02/19 00:51:10.447| |PlazaStreamMessageAdapter|PlazaStream FORTS_OPTTRADE_REPL:Закрытие потока.
2014/02/19 00:51:10.447| |PlazaStreamMessageAdapter|PlazaStream FORTS_OPTAGGR5_REPL:StreamStateChanged: State Closed
2014/02/19 00:51:10.447| |PlazaConnectionPool|OnConnectionStatusChanged: conn SS_1 - status: Error
2014/02/19 00:51:10.447| |PlazaStreamMessageAdapter|PlazaStream FORTS_OPTTRADE_REPL:StreamStateChanged: State Closed
2014/02/19 00:51:10.446|Error |PlazaTrader|System.InvalidOperationException: Подключение в состоянии Connected получило неожиданное сообщение типа 'ConnectMessage'. ---> System.InvalidOperationException: Соединение потеряно. Состояние соединения Error.
--- Конец трассировки внутреннего стека исключений ---
2014/02/19 00:51:10.449|Error |PlazaTrader|System.InvalidOperationException: Подключение в состоянии Connected получило неожиданное сообщение типа 'ConnectMessage'. ---> System.InvalidOperationException: Соединение потеряно. Состояние соединения Error.
--- Конец трассировки внутреннего стека исключений ---
2014/02/19 00:51:10.457| |PlazaConnectionPool|OnConnectionStatusChanged: conn SS_0 - status: Closed
2014/02/19 00:51:10.460| |PlazaStreamMessageAdapter|PlazaStream FORTS_FUTCOMMON_REPL:Остановка потока.
2014/02/19 00:51:10.460| |PlazaStreamMessageAdapter|PlazaStream FORTS_FUTCOMMON_REPL:StreamStateChanged: State Closed
2014/02/19 00:51:10.460| |PlazaStreamMessageAdapter|PlazaStream FORTS_FUTCOMMON_REPL:Поток остановлен.
2014/02/19 00:51:10.460| |PlazaStreamMessageAdapter|PlazaStream FORTS_OPTCOMMON_REPL:Остановка потока.
2014/02/19 00:51:10.460| |PlazaStreamMessageAdapter|PlazaStream FORTS_OPTCOMMON_REPL:StreamStateChanged: State Closed
2014/02/19 00:51:10.461| |PlazaStreamMessageAdapter|PlazaStream FORTS_OPTCOMMON_REPL:Поток остановлен.
2014/02/19 00:51:10.461| |PlazaStreamMessageAdapter|PlazaStream FORTS_OPTINFO_REPL:Остановка потока.
2014/02/19 00:51:10.461| |PlazaStreamMessageAdapter|PlazaStream FORTS_OPTINFO_REPL:StreamStateChanged: State Closed
2014/02/19 00:51:10.461| |PlazaStreamMessageAdapter|PlazaStream FORTS_OPTINFO_REPL:Поток остановлен.
2014/02/19 00:51:10.461| |PlazaStreamMessageAdapter|PlazaStream FORTS_FUTINFO_REPL:Остановка потока.
2014/02/19 00:51:10.461| |PlazaStreamMessageAdapter|PlazaStream FORTS_FUTINFO_REPL:StreamStateChanged: State Closed
2014/02/19 00:51:10.461| |PlazaStreamMessageAdapter|PlazaStream FORTS_FUTINFO_REPL:Поток остановлен.
2014/02/19 00:51:10.461| |PlazaStreamMessageAdapter|PlazaStream FORTS_PART_REPL:Остановка потока.
2014/02/19 00:51:10.461| |PlazaStreamMessageAdapter|PlazaStream FORTS_PART_REPL:StreamStateChanged: State Closed
2014/02/19 00:51:10.461| |PlazaStreamMessageAdapter|PlazaStream FORTS_PART_REPL:Поток остановлен.
2014/02/19 00:51:10.461| |PlazaStreamMessageAdapter|PlazaStream FORTS_POS_REPL:Остановка потока.
2014/02/19 00:51:10.461| |PlazaStreamMessageAdapter|PlazaStream FORTS_POS_REPL:StreamStateChanged: State Closed
2014/02/19 00:51:10.461| |PlazaStreamMessageAdapter|PlazaStream FORTS_POS_REPL:Поток остановлен.
2014/02/19 00:51:10.462| |PlazaConnectionPool|OnConnectionStatusChanged: conn SS_1 - status: Closed
2014/02/19 00:51:12.457| |PlazaStreamMessageAdapter|PlazaStream FORTS_FUTAGGR5_REPL:Остановка потока.
2014/02/19 00:51:12.457| |PlazaStreamMessageAdapter|PlazaStream RTS_INDEX_REPL:Остановка потока.
2014/02/19 00:51:12.457| |PlazaStreamMessageAdapter|PlazaStream FORTS_FUTTRADE_REPL:Остановка потока.
2014/02/19 00:51:12.457| |PlazaStreamMessageAdapter|PlazaStream FORTS_FUTTRADE_REPL:Поток остановлен.
2014/02/19 00:51:12.457| |PlazaStreamMessageAdapter|PlazaStream FORTS_OPTTRADE_REPL:Остановка потока.
2014/02/19 00:51:12.457| |PlazaStreamMessageAdapter|PlazaStream FORTS_FUTAGGR5_REPL:Поток остановлен.
2014/02/19 00:51:12.457| |PlazaStreamMessageAdapter|PlazaStream FORTS_OPTAGGR5_REPL:Остановка потока.
2014/02/19 00:51:12.457| |PlazaStreamMessageAdapter|PlazaStream RTS_INDEX_REPL:Поток остановлен.
2014/02/19 00:51:12.457| |PlazaStreamMessageAdapter|PlazaStream FORTS_OPTTRADE_REPL:Поток остановлен.
2014/02/19 00:51:12.457| |PlazaStreamMessageAdapter|PlazaStream FORTS_OPTAGGR5_REPL:Поток остановлен.
2014/02/19 00:51:12.458| |PlazaConnectionPool|OnConnectionStatusChanged: conn SS_4 - status: Closed
2014/02/19 00:51:12.458| |PlazaConnectionPool|OnConnectionStatusChanged: conn SS_2 - status: Closed
2014/02/19 00:51:12.458| |PlazaConnectionPool|OnConnectionStatusChanged: conn SS_3 - status: Closed
Естественно, напрашиваются вопросы:
Как правильно организовать переподключение при разрыве соединения?
Какие события позволяют понять, что соединение потеряно и что после этого делать?
А то получается, что, после потери интернета на 25 секунд, а потом его появления, единственным вариантом продолжения работы является перезапуск приложения. (Может, подскажете ещё какие-то варианты).