2015-06-24 70 views
2

xep-0313適用於名單,但不適用於聊天室。 我可以爲名單獲取存檔消息,但我無法獲得房間的存檔消息,爲什麼?ejabberd MAM不適用於MUC

<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>[email protected]</value> 
     </field> 
    </x> 
    </query> 
</iq> 

接收消息是:

<message xmlns="jabber:client" from="[email protected]" to="[email protected]/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

我猜你正在使用ejabberd貢獻模塊。然而,新的官方MAM模塊已被添加到官方ejabberd,它支持最新版本的MAM(截至今日0.4)和MUC歸檔。

已發佈在ejabberd 15.06。您也可以直接訪問ejabberd Github存儲庫中的源代碼。該模塊在這裏:https://github.com/processone/ejabberd/blob/master/src/mod_mam.erl

+0

我會在接下來的幾天測試這個。我還編寫了一個模塊鉤住user_send_packet,在鉤子中,我將MUC消息存儲在SQL中。然後提供一個http API來請求MUC消息。從客戶端角度來看,我使用HTTP API來查詢MUC歷史消息。 – xhsoldier

+0

我可以問你如何使用http API查詢MUC歷史消息?我試圖通過使用這個(http://stackoverflow.com/questions/31828955/xmpp-query-archive-by-latest-messages)來獲得聊天室的歷史記錄,但它似乎只適用於個人用戶 – nhenrique

+0

你應該嘗試最新的主分支。它有很大的改進並堅持最新的規格。 –