Не получать большие автономные сообщения в asmack

Я подключаюсь к серверу XMPP, используя библиотеку asmack из Android. Все работает нормально, за исключением проблемы с получением больших сообщений в автономном режиме.

Как только я вхожу в систему, я получаю небольшие сообщения, отправленные другим пользователем, когда я был в автономном режиме. Но если они отправляют какие-то большие сообщения, если я был в автономном режиме, то я не получаю эти сообщения при входе в систему.

Пожалуйста, помогите мне найти решение.

Вот что показывает log cat:

07-23 13:14:01.070: D/SMACK(16682): RCV (0): <message from='[email protected]' to='[email protected]/false' type='error' id='9lxwn-146'><state xmlns='jabber:state:event'><composing>true</composing></state><error code='500' type='wait'><resource-constraint xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/><text xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>Your contact offline message queue is full. The message has been discarded.</text></error></message><message from='[email protected]' to='[email protected]/false' type='error' id='9lxwn-145'><state xmlns='jabber:state:event'><composing>true</composing></state><error code='500' type='wait'><resource-constraint xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/><text xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>Your contact offline message queue is full. The message has been discarded.</text></error></message><message from='[email protected]' to='[email protected]/false' type='error' id='9lxwn-144'><state xmlns='jabber:state:event'><composing>true</composing></state><error code='500' type='wait'><resource-constraint xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/><text xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>Your contact offline message queue is full. The message has been discarded.</text></error></message>

Основная ошибка вот в чем:

Очередь сообщений вашего контакта в автономном режиме заполнена. Сообщение удалено.


person roy mathew    schedule 23.07.2014    source источник


Ответы (1)


Вы можете увеличить лимит хранения сообщений в автономном режиме для каждого пользователя на сервере.

в политике сообщений в автономном режиме

Если вы используете openfire на стороне сервера, перейдите в «Настройки сервера»> «Автономные сообщения».

размер по умолчанию 100 КБ

person Jaspreet Chhabra    schedule 24.07.2014
comment
Есть ли способ узнать оставшийся лимит автономной работы от клиента. Это означает, как я могу знать, столько предела осталось? Есть ли какой-нибудь метод в asmack для этого? - person roy mathew; 24.07.2014
comment
нет, мы не можем получить его на стороне клиента. но вы можете увеличить его до некоторого значения вручную на стороне сервера. Можете ли вы отметить это как ответ - person Jaspreet Chhabra; 24.07.2014
comment
Тогда не могли бы вы предложить лучший подход к работе с офлайн-сообщениями? Я использую ejabbered на стороне сервера. - person roy mathew; 24.07.2014
comment
извините, никогда не работал над ejabbed. Я использовал только openfire - person Jaspreet Chhabra; 24.07.2014
comment
Любое предложение иметь дело с большим количеством сообщений в автономном режиме? Предположим, я отправляю 100 автономных сообщений другому контакту, а лимит моего сервера составляет 75, тогда как я могу узнать этот лимит и обработать оставшиеся 25 сообщений? - person roy mathew; 24.07.2014
comment
В моем случае я использовал веб-сервис для получения сообщений в автономном режиме. Я обновил плагин архива, чтобы получать офлайн-сообщения через веб-службу, которая не имеет никаких ограничений, см. эту ссылку stackoverflow.com/questions/24674665/ - person Jaspreet Chhabra; 24.07.2014