Подтверждение сообщения Ejabberd от сервера

Я настроил и внедрил сервер ejabberd с моей небольшой программой для общения в мобильном приложении. Также реализован XEP-184 для статуса доставки сообщений.

Но у меня возникла проблема: как моему приложению узнать, действительно ли мое сообщение достигло сервера ejabberd?

Мой сценарий: я иду в зону слабого сигнала соединения, сигнал едва достаточно силен, чтобы поддерживать соединение, но с частыми тайм-аутами. Я пытался отправить сообщение, как я могу подтвердить, что сообщение дошло до сервера?

Надеюсь, я достаточно ясно выразился в своем вопросе. Заранее спасибо!


person joe kirk    schedule 23.07.2012    source источник
comment
Привет, ты нашел решение этой проблемы.. Буду рад узнать, если есть... Спасибо!   -  person securecurve    schedule 02.11.2013


Ответы (2)


Для этого я написал мод ejabberd, который вы можете найти здесь:

https://github.com/kmtsar/ejabberd-mods

person Kay Tsar    schedule 06.11.2013
comment
Я собираюсь попробовать мод, могу ли я сообщить вам, если у меня возникнут какие-либо проблемы с применением мода? Спасибо, в любом случае. - person joe kirk; 04.10.2014
comment
Да, конечно, хотя я больше не работаю над этим, но видел, как другие люди на Github помогают. - person Kay Tsar; 06.10.2014

Возможным подходом может быть реализация XEP-0198 Stream Management. Управление потоком — стандартная функция последних версий ejabberd.

При этом клиент может попросить сервер вести подсчет полученных строф, а при заинтересованности попросить сервер подтвердить количество полученных строф.

Затем клиент может получить представление о том, была ли получена одна или несколько строф.

Это можно сделать для каждой отдельной строфы: клиент требует подтверждения для последней отправленной строфы и ожидает подтверждения от сервера.

Теоретически вы можете реализовать только «базовые сценарии подтверждения» — нет необходимости в полном XEP (который включает в себя возобновление потока).

person giavac    schedule 28.01.2014