Не удается получить сообщения XMPP по MAM после указанного идентификатора - PullRequest
0 голосов
/ 28 июня 2019

Я пишу мессенджер xmpp. По моему замыслу он хранит локальную историю сообщений. Когда пользователь подключается к сети и открывает диалог с кем-то, моя программа запрашивает архив (XEP-313) от последнего локально сохраненного сообщения до последнего сообщения на сервере, используя тег «после». Однако это не работает так, как я ожидал.

Запрос

<iq id="qxmpp21" type="set">
    <query xmlns="urn:xmpp:mam:1" queryid="qxmpp21">
        <x xmlns="jabber:x:data" type="submit">
            <field type="hidden" var="FORM_TYPE"><value>urn:xmpp:mam:1</value></field>
            <field type="text-single" var="with"><value>user1@domain.org</value></field>
        </x>
        <set xmlns="http://jabber.org/protocol/rsm">
            <max>100</max>
            <after>5d10ba97-9ce8-46d4-9547-4f5e91e4ac19</after>
        </set>
    </query>
</iq>

Ответ

<iq xmlns="jabber:client" id="qxmpp21" xml:lang="en" xmlns:xml="http://www.w3.org/XML/1998/namespace" type="result" from="user2@domain.org" to="user2@domain.org/QXmpp">
    <fin xmlns="urn:xmpp:mam:1" queryid="qxmpp21" complete="true">
        <set xmlns="http://jabber.org/protocol/rsm">
            <count xmlns="http://jabber.org/protocol/rsm">465</count>
        </set>
    </fin>
</iq>

Я использую библиотеку qxmpp и ejabberd в качестве сервера.

Я что-то не так делаю? Заранее спасибо!

...