XMPP iOS Framework обнаруживает проблему отключения интернета с сервером OpenFire

Я применил приложение для общения с использованием XMPP iOS Framework с сервером OpenFire.

К счастью, приложение работает успешно, но я столкнулся с одной проблемой отключения Интернета в приложении.

Когда пользователь выходит из системы или переходит в автономный режим вручную, он отправляет строфы в свои реестры. Поэтому его реестры знают, что пользователь перешел в автономный режим.

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

Я подумал, что что-то вроде сервера OpenFire может проверять подключенных пользователей, и всякий раз, когда какой-либо пользователь отключается, он должен отправить строфу присутствия с автономным статусом своим реестрам, чтобы они могли знать, что этот пользователь находится в автономном режиме.

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

Мне будет очень полезно решить эту проблему.

Спасибо заранее.

Ответ 1

Это основная функция xmpp и Openfire должны отправить unavailable вашим контактам от вашего имени. Так что это похоже на ошибку. Но есть и другая проблема: пользователи с мобильным Интернетом могут повторно подключаться слишком часто, а сообщество XMPP разработало расширение Stream Management, которое позволяет серверу "спящий режим" "клиентский сеанс, когда он быстро восстанавливается и восстанавливает его без изменений присутствия. Суммировать:

  • Проверьте, активна ли управление потоком - в этом случае пользователь будет по-прежнему фиксировать фиксированный интервал времени (обычно 5 минут), а затем отключается.
  • Проверьте, поддерживает ли Openfire какое-либо нестандартное расширение для поддержки сеанса пользователя.
  • Если вы уверены, что ни один из расширений не является "спящим" сеансом пользователя, то это действительно ошибка. Попробуйте то же самое с другим сервером xmpp - хорошие кандидаты ejabberd и prosody