按需获取房间聊天记录

Posted

技术标签:

【中文标题】按需获取房间聊天记录【英文标题】:Get room chat history on demand 【发布时间】:2015-06-23 06:29:18 【问题描述】:

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

但是加入房间后,如果用户想要更多的历史消息,似乎没有办法做到这一点。

有什么想法吗?

【问题讨论】:

【参考方案1】:

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

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

参考这个帖子: ejabberd MAM does not work for MUC

【讨论】:

以上是关于按需获取房间聊天记录的主要内容,如果未能解决你的问题,请参考以下文章

如何通过API从Hipchat获取房间的所有消息历史记录?

一次加入多个房间 Socket.io

如何在 XMPP 的聊天室中获取用户加入时间

用于聊天应用程序的多个 websocket 实例

[Go WebSocket] 多房间的聊天室自动清理无人房间

Spring WebSocket 多房间聊天