ios - 在 IOS 中使用 MucSub 获取 MUC 消息历史记录

标签 ios xmpp ejabberd xmppframework multiuserchat

每次登录应用程序或重新安装应用程序时,我都没有收到群组消息历史记录。我在 MUC for iOS 中搜索了很多消息存档。尽管我按照附图中所述将设置配置到 YML 文件中,但 Ejabberd 没有向我提供该组的旧消息。 enter image description here我将历史记录大小保留为 10。这意味着每次登录应用程序或重新安装应用程序时都必须提取至少 10 条消息,但重新安装应用程序后我无法每次都收到 10 条消息。我正在使用 Robbiehanson/XMPPFramework for iOS 来实现基于 XMPP 的聊天。我还执行了基于 MucSub 的 MUC 来发送/接收消息。

我所执行的场景: 我是一个 MUC 小组的成员。关联组的成员向该组发送了 15 条消息。当我在线时,我收到了所有这些消息。现在我已经退出群组了。从设备中删除该应用程序,然后使用相同的登录凭据将其重新安装到设备中。此时我已经看不到之前收到的 15 条消息了。在这里,即使将应用程序重新安装到 iOS 设备中,我也想获取所有 15 条消息。

我搜索了各种堆栈溢出问题,但没有一个对我有帮助。我们将不胜感激您的帮助。

最佳答案

也许您可以尝试通过指定 历史 元素以及指定的 ma​​xstanzas 来加入房间。

我们有类似的情况,比如我们在加入房间时需要最近 3 个月的历史记录,因此我们在 历史 标签中提到了这一点,如下面的代码示例

let historyElement = DDXMLElement(name: "history")
historyElement.addAttribute(withName: "since", stringValue: ((lastDate as NSDate).addingTimeInterval(1).xmppDateTimeString())!)
room.join(usingNickname: userJidString, history: historyElement)

关于ios - 在 IOS 中使用 MucSub 获取 MUC 消息历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59623026/

相关文章:

android - 在设备上开发 react-native 时如何使用 HMR?

mysql - 尝试在 ejabberd (17.07) 上的 android 设备上使用 smack api(4.2) 注册用户时出现错误

android - 无法识别 IQ Custom 提供商

ios - XMPPMessageArchivingCoreDataStorage 重复条目 - XMPP MUC

ios - 如何在消息传递xmpp框架中发送图像?

linux - linux mint 上的 ejabberd 服务器问题

mysql - 调用未定义函数 ejabberd_logger :info_msg

ios - UITableView 内的 UISearchbar 作为隐藏键盘的最后一个单元格

iphone - 在应用程序启动时加载一张图片,该图片可以从网上更新

ios - 使用 CoreData 和 Swift 2.0 保存问题