获取 XMPP 聊天历史记录 OpenFire

2023-11-30

我正在尝试使用 iOS 中的 XMPPFramework 和 OpenFire 服务器来实现聊天应用程序。我的聊天工作正常,我正在尝试从服务器检索聊天历史记录。当然,我已经在服务器上启用了邮件存档。这是我发送的请求

<iq type="get">
   <retrieve xmlns="urn:xmpp:archive" with="dev_user80@mydomain">
       <set xmlns="http://jabber.org/protocol/rsm">
           <max>100</max>
       </set>
   </retrieve>
</iq>

这是我得到的回应。

<iq xmlns="jabber:client" type="error" to="dev_user103@mydomain/6i0qoo9tek">
    <retrieve xmlns="urn:xmpp:archive" with="dev_user80@mydomain">
        <set xmlns="http://jabber.org/protocol/rsm">
            <max>100</max>
        </set>
    </retrieve>
    <error code="503" type="cancel">
        <service-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">
        </service-unavailable>
    </error>
</iq>

我已经浏览了在互联网上可以找到的所有解决方案,但找不到令人满意的解决方案


change urn:xmpp:archive to urn:xmpp:archive:auto

我遇到了同样的问题,并通过运行发现请求确定了这一点:http://xmpp.org/extensions/xep-0136.html#disco

我发了这个智商:

<iq from='[email protected]'
    id='disco1' 
    to='mydomain.com'
    type='get'>
  <query xmlns='http://jabber.org/protocol/disco#info'/>
</iq>

我启用了监控插件的 Openfire 服务器返回了以下结果:

<iq xmlns="jabber:client" type="result" id="disco1" from="mydomain.com" to="[email protected]/resource">
   <query xmlns="http://jabber.org/protocol/disco#info">
      <identity category="server" name="Openfire Server" type="im" />
      <identity category="pubsub" type="pep" />
      <feature var="http://jabber.org/protocol/pubsub#retrieve-default" />
      <feature var="http://jabber.org/protocol/pubsub#purge-nodes" />
      <feature var="vcard-temp" />
      <feature var="http://jabber.org/protocol/pubsub#subscribe" />
      <feature var="http://jabber.org/protocol/pubsub#subscription-options" />
      <feature var="http://jabber.org/protocol/pubsub#create-nodes" />
      <feature var="http://jabber.org/protocol/pubsub#outcast-affiliation" />
      <feature var="msgoffline" />
      <feature var="http://jabber.org/protocol/pubsub#get-pending" />
      <feature var="http://jabber.org/protocol/pubsub#multi-subscribe" />
      <feature var="http://jabber.org/protocol/pubsub#presence-notifications" />
      <feature var="urn:xmpp:ping" />
      <feature var="jabber:iq:register" />
      <feature var="http://jabber.org/protocol/pubsub#delete-nodes" />
      <feature var="http://jabber.org/protocol/pubsub#config-node" />
      <feature var="urn:xmpp:archive:manage" />
      <feature var="http://jabber.org/protocol/pubsub#retrieve-items" />
      <feature var="http://jabber.org/protocol/pubsub#auto-create" />
      <feature var="http://jabber.org/protocol/disco#items" />
      <feature var="http://jabber.org/protocol/pubsub#item-ids" />
      <feature var="http://jabber.org/protocol/pubsub#meta-data" />
      <feature var="urn:xmpp:mam:0" />
      <feature var="jabber:iq:roster" />
      <feature var="http://jabber.org/protocol/pubsub#instant-nodes" />
      <feature var="http://jabber.org/protocol/pubsub#modify-affiliations" />
      <feature var="http://jabber.org/protocol/pubsub#persistent-items" />
      <feature var="http://jabber.org/protocol/pubsub#create-and-configure" />
      <feature var="http://jabber.org/protocol/pubsub" />
      <feature var="http://jabber.org/protocol/pubsub#publisher-affiliation" />
      <feature var="http://jabber.org/protocol/pubsub#access-open" />
      <feature var="http://jabber.org/protocol/pubsub#retrieve-affiliations" />
      <feature var="jabber:iq:version" />
      <feature var="http://jabber.org/protocol/pubsub#retract-items" />
      <feature var="urn:xmpp:time" />
      <feature var="http://jabber.org/protocol/pubsub#manage-subscriptions" />
      <feature var="jabber:iq:privacy" />
      <feature var="jabber:iq:last" />
      <feature var="http://jabber.org/protocol/commands" />
      <feature var="http://jabber.org/protocol/offline" />
      <feature var="urn:xmpp:carbons:2" />
      <feature var="http://jabber.org/protocol/address" />
      <feature var="http://jabber.org/protocol/pubsub#publish" />
      <feature var="http://jabber.org/protocol/pubsub#collections" />
      <feature var="http://jabber.org/protocol/pubsub#retrieve-subscriptions" />
      <feature var="urn:xmpp:archive:auto" />
      <feature var="http://jabber.org/protocol/disco#info" />
      <feature var="jabber:iq:private" />
      <feature var="http://jabber.org/protocol/rsm" />
   </query>
</iq>

您可以看到自动存档(urn:xmpp:archive:auto)和档案管理(urn:xmpp:archive:manage)支持,但手动存档(urn:xmpp:archive:manual) 和存档首选项 (urn:xmpp:archive:pref) 不是。

还支持 XEP-0313(列为urn:xmpp:mam:0)并可以检索存档的消息:http://xmpp.org/extensions/xep-0313.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取 XMPP 聊天历史记录 OpenFire 的相关文章

  • UICollectionView 自动滚动到 IndexPath 处的单元格

    在加载集合视图之前 用户设置集合视图数组中的图像数量 所有单元格都不适合屏幕 我有 30 个单元格 但屏幕上只有 6 个 问题 如何在加载 UICollectionView 时自动滚动到具有所需图像的单元格 新的 编辑过的答案 将其添加到v
  • 使用 iOS 8 自定义键盘发送图像?

    我一直在为 iOS 8 开发自定义键盘 但在尝试使用键盘发送图像时偶然发现了一个问题 我做了一些研究 似乎没有一种简单的方法可以做到这一点UITextDocumentProxy因为只有NSStrings被允许 我是否忽略了使用自定义键盘发送
  • Swift Generics 在使用继承时不会实例化泛型

    我有课Alpha and Berry class Alpha class Berry Alpha 我有一个使用继承及其泛型的函数 func myFunc
  • 如何打开定位服务

    当有人第一次拒绝时 如何从实际应用程序重新打开定位服务 我可以选择关闭或打开它 您只能提示他们在屏幕上打开定位服务 如下所示 UIApplication sharedApplication openURL NSURL URLWithStri
  • 网站在 iPhone 屏幕右侧显示空白区域

    我遇到问题http eiglaw com http eiglaw com iPhone 屏幕右侧显示约 25 像素宽的空白 边框 我在 stackoverflow 上研究了这个问题 这些帖子是相关的 但是当我尝试提供的各种解决方案时 我无法
  • 如何在 Firebase 控制台中使用 Apple 新的 APN .p8 证书

    随着最近 Apple 开发者帐户的升级 我面临着一个困难 在尝试创建推送通知证书时 它为我提供了 p8 证书 而不是可以导出到 p12 的 APNs 证书 Firebase 控制台仅接受 p12 证书 那么我如何从这些新的 p8 证书中获取
  • 在没有预览窗口的情况下使用 AVCaptureVideoDataOutputSampleBufferDelegate

    我正在开发一个基于 Swift 的 macOS 应用程序 我需要捕获视频输入 但不将其显示在屏幕上 而不是显示视频 我想将缓冲的数据发送到其他地方进行处理 并最终显示它在 a 中的一个物体上SceneKit scene 我有一个Camera
  • 在 WKWebView 中禁用放大手势

    我正在寻找一种方法来禁用 WKWebView 的 iOS 实现上的 捏合缩放 放大手势 OS X 有一个 magnification BOOL 属性 但在 iOS 上似乎不可用 WKWebView h if TARGET OS IPHONE
  • 如何在 iOS 9 上可靠地检测是否连接了外部键盘?

    在 iOS 9 之前 确定是否连接外部键盘的最可靠方法是监听UIKeyboardWillShowNotification并使文本字段成为第一响应者 如中所述这个问题 https stackoverflow com questions 289
  • 使用完成处理程序在 Swift 中调用连续动画

    我正在制作一个可以显示化学反应动画的应用程序 每个原子都是一个 SCNSphere 并通过 SCNActions 进行动画处理 我尝试使用 runAction 中的完成处理程序在当前操作完成后调用下一个动画 因为每个原子必须做出很多不同的运
  • 如何使用 ejabberd 进行视频通话?

    如何使用ejabberd进行视频通话 如msn和skype ejabberd 本身不处理音频 视频 音频和视频通过 Jingle XEP 0166 进行处理 这是客户端到客户端的 如果您想发出音频或视频呼叫 您应该确保两个客户端都通过正常的
  • 在 Swift 中从 UIScrollView 创建 PDF 文件

    我想从 UIScrollView 的内容创建一个 PDF 文件 func createPdfFromView aView UIView saveToDocumentsWithFileName fileName String let pdfD
  • 如何使用AudioKit保存音频文件?

    我有音频文件 我给它做了一些效果 let pitchshifter AKPitchShifter self audioPlayer pitchshifter shift 10 AudioKit output pitchshifter 如果我
  • UIButton的高亮状态由什么控制事件开始和结束

    我正在创建类似钢琴的视图UIButton作为钢琴键 什么UIControlEvents当按钮获得和失去突出显示状态时 我应该监听以获得回调吗 我试图创建子类UIButton并添加属性观察者highlighted并且运行良好 然而 有时我需要
  • 作为!与 Swift 中 Xcode 6.3 中的 as 运算符对比

    Xcode 6 3 使 Swift 发生了很大变化 我必须更换每个应用程序中的数十个位置as gt as 为什么 现在有什么规则 在 Swift 1 2 之前 as运算符可用于执行两种不同类型的转换 具体取决于要转换的表达式的类型及其要转换
  • 根据 iOS 版本使用不同的类实现?

    iOS 11 最近添加了一个我想使用的新功能 但我仍然需要支持旧版本的 iOS 有没有一种方法可以将同一个类编写两次 并让较新版本的 iOS 使用该类的一个版本 而旧版本的 iOS 使用另一个版本 注 最初我用的是if available
  • 在 iOS 7 Safari 中,如何区分通过边缘滑动与后退/前进按钮的 popstate 事件?

    在 iOS 7 Safari 中 现在有两种后退 前进导航方式 使用底部的传统后退 前进按钮箭头或从屏幕边缘滑动 我正在使用动画在 ajax 应用程序中的页面之间进行转换 但如果用户通过边缘滑动进行导航 我不想触发该转换 因为这本身就是一个
  • 什么是 WKWebView 中的 WKErrorDomain 错误 4

    fatal error LPWebView encounters an error Error Domain WKErrorDomain Code 4 A JavaScript exception occurred UserInfo 0x7
  • UIView晃动动画

    我试图在按下按钮时使 UIView 摇动 我正在调整我找到的代码http www cimgf com 2008 02 27 core animation tutorial window shake effect http www cimgf
  • 在 UIScrollview 上显示缩略图的最佳方法是什么(从服务器下载)

    我想在 UIScrollview 如照片应用程序 上显示许多图像 作为缩略图 所有图像将从服务器下载 据我所知 有几种选择 1 通过创建 UIImageviews 然后将它们添加为主滚动视图上的子视图 2 通过子类化一个UIView类 然后

随机推荐

  • 获取预览camerax android中框内的所有文本

    i want to analyse all text that is just inside by box that i have in a preview camera But im getting wrong coordinates f
  • 将文件包含在数组中

    我有这个代码 routes array Home gt index php Contact gt contact php Register gt register php 我有这样的 example php 文件 Support gt su
  • Selenium Chromedriver 导致 Chrome 在没有配置插件、书签和其他设置的情况下启动

    我是 Selenium 的新用户 我想用它来启动 Chrome 浏览器 但遇到问题 public static void processor String url String name System setProperty webdriv
  • 安全的视频流

    我正在使用 jwplayer 我希望用户观看视频但不下载它们 我发现生成视频的哈希 URL 是可以做到的 我在创建哈希的服务器上使用lighttpd mod 并使用它创建视频的url timeout 从创建哈希后每 30 分钟过期 当我第二
  • 使用 jquery 删除不带

    我有一个定义列表 我需要删除所有 dt 没有标签的人 dd 在这种特殊情况下 Herramientas Suplementos Repuestos Herramientas 和 Antipincaduras 该列表可能会有很大差异 因为它取
  • 更改 PHP 中的时区

    好吧 快速提问 服务器正在东部时间运行 PHP程序需要使用中央时间进行日期计算 目前 我将这一行放在脚本的最顶部 putenv TZ US Central 这是最好的方法吗 还是有一些我不知道的 PHP 技巧 Cheers 您可以使用dat
  • Xcode 4异常断点过滤

    中断 Objective C 异常确实非常有用 并且是调试问题的最佳方法NSArray等等 然而 在实际编程时 异常也是一个很好用的东西 Xcode 提供了两种中断 Obj C 异常的选择 每当抛出异常时就中断 每当捕获异常时就中断 打破捕
  • 用于类延续的 Xcode 代码片段?

    我有一个用于创建属性的 Xcode 4 6 代码片段 一个用于弱属性 一个用于强属性 Typing propstrong在接口声明 h 文件 中工作得很好 但是当我在课堂延续中执行此操作时 没有向我提供代码片段 interface MyCl
  • 搜索和链接库目录的顺序

    我很难理解搜索目录以链接到库的顺序 我有一个CentOS6系统和3个版本的gcc 4 4 7 4 7 2 4 9 2 系统版本为4 4 7 版本4 7 2和4 9 2为模块 在 etc ld so conf d 有两个文件 gcc 4 7
  • 如何安装适用于 Python 2.7 的 PyQT4?

    我正在尝试在 Python 2 7 9 上安装 PyQT4 我在 Mac OS X 上 所以我尝试通过 Homebrew 和 Macports 安装它 不幸的是它们似乎都不起作用 这是我尝试过的 brew install python qt
  • 如何检查一个数组元素是否完全存在于php中的另一个数组中[重复]

    这个问题在这里已经有答案了 我有两个数组 例如 array1 1 2 3 4 5 6 7 8 9 array2 4 6 9 有没有什么函数可以让我确定array2完全存在于array1 我知道我可以使用in array 循环中的函数 但在我
  • 包含文件中的包含路径失败

    我在 PHP 包含路径方面遇到了一些麻烦 并且不明白 那里出了什么问题 首先 我想向您展示我的文件 目录结构 文件 目录结构 index php foo baz php bar inc php asdf qwerty inc php ind
  • 批处理脚本帮助 - 将 DelayedExpansion Var 的子字符串替换为另一个 DelayedExpansion Var

    基本上我正在尝试做 var1 SomeText var2 但这段代码不起作用 我缺少什么 在执行使用变量进行搜索和 或替换的搜索和替换操作时 扩展顺序至关重要 内部变量必须在外部搜索和替换扩展发生之前扩展 尝试对两者都使用延迟扩展显然是行不
  • 如何在我的本地 Geth 账户中获取一些以太币?

    我已经设置了 Geth 并创建了一些没有余额的帐户 所以我无法进行任何交易 因为它需要花费 Gas 费 如何创建具有一些初始余额的帐户 以便我可以测试我的合同 我使用以下命令创建了帐户 gt personal newAccount 假设您正
  • 确保 for 循环中的可观察对象在执行其他代码之前全部完成

    我有一段代码 如下所示 getPersons subscribe persons gt for const person of persons getAddress person id subscribe address gt person
  • Android 11 - 访问Android/data目录

    除了 root 之外 还有什么方法可以访问 Android 11 上的 SD 卡的 android data 目录吗 我的 非 Play 商店 应用程序需要访问另一个应用程序的公共 Android data com appname 文件夹
  • PHP 8.1.1 的 __toString() 方法问题 - 如果在声明类本身之前创建实例,则导致找不到类

    从 PHP 7 3 升级到 8 1 1 后遇到问题 当然还有很多事情要做 但这有点奇怪 这个例子对我不起作用 出现错误致命错误 未捕获错误 找不到类 TestC C xampp81 htdocs helpdesk811 test81 ind
  • 修复了滚动项目时导航抽屉中的导航标题

    当前状态 具有 NavigationHeader 和 NavigationMenu 项的 NavigationDrawer 这些项目数量很大 因此需要滚动才能访问底部的项目 要求 向下滚动到底部时 导航标题应保持固定 这是我的 Activi
  • Flutter:英雄过渡+小部件动画同时进行?

    因此 我对 Flutter 的特定动画案例有一些疑问 基本上 我想做的是同时运行用于路线更改的英雄过渡和相邻小部件上的自定义动画 具体来说 我的根目录中有一个自定义的 InheritedWidget 它从 StatefulWidget 父级
  • 获取 XMPP 聊天历史记录 OpenFire

    我正在尝试使用 iOS 中的 XMPPFramework 和 OpenFire 服务器来实现聊天应用程序 我的聊天工作正常 我正在尝试从服务器检索聊天历史记录 当然 我已经在服务器上启用了邮件存档 这是我发送的请求