LINUX.ORG.RU

Как запросить всю историю XMPP-конференции?

 ,


0

2

Делаю на работе комнаты на ejabberd. В общем-то, сам сервис я настроил и сконфигурировал так, как и надо было, но есть одна проблема. Требуется обеспечить доступность всей истории комнаты для каждого участника, нового или же переподключившегося. Этот XMPP-сервер использует максимум 10 человек, из которых большинство в одной локальной сети с ним, так что от нагрузки он так просто не ляжет.

В /etc/ejabberd/ejabberd.yml я просто увеличил лимит хранящихся в комнате сообщений до 50000, и это прекрасно работает. До тех пор, пока сервис не будет перезапущен или физически не будет перезагружен комп, на котором всё это и работает.

Я подключил и настроил mod_mam (XEP-0313) так, чтобы он архивировал историю вновь созданных комнат в MySQL. Но проблема в том, что после перезагрузки сервера ни Pidgin, ни Psi+, ни Gajim, ни Swift, ни Spark не показывают в комнате ни одного из старых сообщений. Даже для тех пользователей, которые еще не участвовали в конференции.

Что же касается самого сервера, на вручную переданное из консоли XMPP

<iq id='purpled_id' type='get' to='room@conference.example.com'>
	<query xmlns='urn:xmpp:mam:tmp' queryid='random_string'/>
</iq>

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

Точнее, как сделать, чтобы клиент эту историю запросил? И какой клиент использовать? Или же плагин? Он должен быть доступен не только для GNU/Linux, но и для Windows, и естественно, это не обязан быть один и тот же клиент.

Прошу подсказать, потому что я, похоже, в тупике.

Большое спасибо за внимание.

Александр



Последнее исправление: Shrenos (всего исправлений: 1)

Имею такую же проблему.

У вас получилось решить эту ситуацию? Если да то отпишитесь так как не нашел ни где подобного.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.