ios - 在 IOS 中使用 MucSub 获取 MUC 消息历史记录
问题描述
每次登录应用程序或重新安装应用程序时,我都没有收到群组消息历史记录。我在 MUC for iOS 中搜索了很多消息存档。尽管我在 YML 文件中配置了设置,如附图中所述,但 Ejabberd 并未向我提供该组的旧消息。我保持历史记录大小为 10。这意味着每次登录应用程序或重新安装应用程序时必须获取至少 10 条消息,但重新安装应用程序后每次都无法收到 10 条消息。我正在使用 Robbiehanson/XMPPFramework for iOS 来实现基于 XMPP 的聊天。我还执行了基于 MucSub 的 MUC 来发送/接收消息。
我执行的场景:我是一个 MUC 小组的一员。相关组的成员向该组发送了 15 条消息。当我在线时,我收到了所有这些消息。现在我从组中注销。从设备中删除应用程序并使用相同的登录凭据将其重新安装到设备中。此时我看不到我之前收到的 15 条消息。在这里,即使在将应用程序重新安装到 iOS 设备后,我也希望获得所有 15 条消息。
我搜索了各种堆栈溢出问题,但没有一个对我有帮助。您的帮助将不胜感激。
解决方案
也许您可以尝试通过指定带有maxstanzas的历史元素来加入房间。
我们有类似的情况,比如我们在加入房间时需要最近 3 个月的历史,所以我们在历史标签中提到了这一点,就像下面的代码示例
let historyElement = DDXMLElement(name: "history")
historyElement.addAttribute(withName: "since", stringValue: ((lastDate as NSDate).addingTimeInterval(1).xmppDateTimeString())!)
room.join(usingNickname: userJidString, history: historyElement)
推荐阅读
- sql - Postgres计算条件下的总行数,但忽略限制和分组依据
- angular - primeNG 的 p-dataTable 无法从员工/Angular4 数组中获取值
- javascript - ionic cordova build ios --prod 使 JavaScript 堆内存不足
- python - 如何在python中从二进制char数组传递到int数组?
- javascript - 拉拉维尔 | Javascript | 在刀片中选择特定的 html 表
- python - SQL——临时快照/归档跨 Flask 页面的查询
- python - Django Rest Framework urls 路由器只识别一个路径
- c++ - v8 FunctionTemplate::GetFunction() 因访问冲突而崩溃
- python - 问题从 CSV 中提取数据并附加到 Dict
- docker - 驱动程序编程外部连接失败:...绑定:无法分配请求的地址