按需获取房间聊天记录

Get room chat history on demand

来自 xep-0045:http://xmpp.org/extensions/xep-0045.html#enter-history 似乎用户只有在加入房间时才能获得房间历史消息。例如,用户加入房间时可以获得 20 条消息。

但是加入房间后,如果用户想要更多历史消息,似乎没有办法实现。

有什么想法吗?

我已经解决了这个问题。有两种解决方案: 1.目前的ejabberd MAM不支持MAM MUC。但是有一个分支可以用于测试。请记住,它尚未 public 发布。 https://github.com/processone/ejabberd/blob/master/src/mod_mam.erl

  1. 编写一个模块来挂钩user_send_packet,在挂钩中,将MUC消息存储在SQL中。然后提供一个 http API 来请求 MUC 消息。从客户端的角度来看,我使用 HTTP API 来查询 MUC 历史消息。

参考这个话题: