Я использую сервер ejabberd XMPP для клиента чата, который также имеет функцию группового чата. Моя проблема в том, что когда новый пользователь присоединяется к групповой комнате, он получает только первые 20 сообщений из комнаты, хотя для параметра history_size установлено значение 200 (на данный момент). На стороне клиента, когда новый пользователь присоединяется к комнате, строфа присутствия содержит элемент истории, запрашивающий сообщения, отправленные после 1970 года. Время сервера — 2014, поэтому теоретически он должен отправить все сообщения или, по крайней мере, 200.
Фрагмент muc ejabberd.cfg:
{mod_muc, [
%%{host, "conference.@HOST@"},
{access, muc},
{access_create, muc},
{access_persistent, muc},
{access_admin, muc_admin},
{history_size, 50},
{max_users, 500}
]}
Раздел XMPP, отправленный для присоединения к комнате:
<presence
from='someusername@host'
id='someid'
to='[email protected]/somenickname'>
<x xmlns='http://jabber.org/protocol/muc'>
<history since='1970-01-01T00:00:00Z'/>
</x>
</presence>