Я испытываю довольно странное поведение, используя smack для создания небольшого клиента/Бит XMPP. Я установил соединение, а также ConnectionListener и ChatManagerListener. Это работает отлично, и я могу общаться с моим приложением, которое работает на портативном устройстве.
Чтобы проверить поведение при потерянном подключении, я подключил кабель Ethernet портативного устройства. Я ожидал, что клиент XMPP потеряет соединение и что пользователь будет настроен "в автономном режиме" в списке друзей пользователей. Что происходит, так это то, что этот пользователь по-прежнему отображается как "онлайн", а ConnectionListener моего клиента ничего не срабатывает, будь то connectionClosed или reconnectionFailed или иначе.
Когда я снова подключаю кабель Ethernet, иногда это похоже на то, что соединение было все время живым. Выполняются автономные сообщения, и я могу снова поболтать, как раньше. В других случаях мой клиент полностью недоступен и не по порядку, кажется, что все слушатели ушли... Но никаких экскрементов не бросают.
Это довольно странное и неконтролируемое поведение, которое сделает весь клиент непригодным для меня, поскольку я не могу быть уверен, что клиент снова появится после того, как соединение будет объявлено.
Кто-нибудь еще сталкивался с такими проблемами или имел какие-то намеки на то, что (не) происходит?
При необходимости я могу предоставить свой код, но на самом деле он просто копирует и вставляет из документации Smack.