问题
xep-0313 works for rosters, but does not work for room chat. I can get archive message for the rosters, but I can not get archive message for the room, why?
<iq type='set' id='juliet1'>
<query xmlns='urn:xmpp:mam:0'>
<x xmlns='jabber:x:data' type='submit'>
<field var='FORM_TYPE' type='hidden'>
<value>urn:xmpp:mam:0</value>
</field>
<field var='with'>
<value>roomJid@conference.host</value>
</field>
</x>
</query>
</iq>
The receive message is:
<message xmlns="jabber:client" from="test3@192.168.1.67" to="test3@192.168.1.67/iPhone" id="dHS0oejBDWHp”>
<fin xmlns="urn:xmpp:mam:0" complete="true”>
<set xmlns="http://jabber.org/protocol/rsm”/>
</fin>
<no-copy xmlns="urn:xmpp:hints”/>
</message>
回答1:
I guess you are using ejabberd contributed module. However, a new official MAM module has been added to official ejabberd and it support latest version of MAM (0.4 as of today) and MUC archiving.
It has been released in ejabberd 15.06. You can can also get direct access to source from ejabberd Github repository. The module is here: https://github.com/processone/ejabberd/blob/master/src/mod_mam.erl
来源:https://stackoverflow.com/questions/31016595/ejabberd-mam-does-not-work-for-muc