XMPP iOS Framework обнаруживает проблему отключения интернета с сервером OpenFire
Я применил приложение для общения с использованием XMPP iOS Framework с сервером OpenFire.
К счастью, приложение работает успешно, но я столкнулся с одной проблемой отключения Интернета в приложении.
Когда пользователь выходит из системы или переходит в автономный режим вручную, он отправляет строфы в свои реестры. Поэтому его реестры знают, что пользователь перешел в автономный режим.
Теперь, когда интернет отключится от пользовательского устройства, приложение не сможет отправить строфу присутствия на сервер из-за отключения интернета. Поэтому его реестры не получат информацию об этом автономном пользователе, и пользователь будет показан только в онлайн-режиме.
Я подумал, что что-то вроде сервера OpenFire может проверять подключенных пользователей, и всякий раз, когда какой-либо пользователь отключается, он должен отправить строфу присутствия с автономным статусом своим реестрам, чтобы они могли знать, что этот пользователь находится в автономном режиме.
Может кто-нибудь, пожалуйста, помогите мне, если есть способ, которым я могу реализовать эту функцию.
Мне будет очень полезно решить эту проблему.
Спасибо заранее.
Ответы
Ответ 1
Это основная функция xmpp и Openfire должны отправить unavailable
вашим контактам от вашего имени. Так что это похоже на ошибку.
Но есть и другая проблема: пользователи с мобильным Интернетом могут повторно подключаться слишком часто, а сообщество XMPP разработало расширение Stream Management, которое позволяет серверу "спящий режим" "клиентский сеанс, когда он быстро восстанавливается и восстанавливает его без изменений присутствия. Суммировать:
- Проверьте, активна ли управление потоком - в этом случае пользователь будет по-прежнему фиксировать фиксированный интервал времени (обычно 5 минут), а затем отключается.
- Проверьте, поддерживает ли Openfire какое-либо нестандартное расширение для поддержки сеанса пользователя.
- Если вы уверены, что ни один из расширений не является "спящим" сеансом пользователя, то это действительно ошибка. Попробуйте то же самое с другим сервером xmpp - хорошие кандидаты ejabberd и prosody