我从openfire中获取历史记录,通过在开火中安装打开的fire plugin并尝试这个代码.
let iq1 = DDXMLElement(name: "iq")
    iq1.addAttribute(withName: "type",stringValue: "get")
    iq1.addAttribute(withName: "id",stringValue: "0")
    let retrieve = DDXMLElement(name: "retrieve",xmlns: "urn:xmpp:archive")
    retrieve?.addAttribute(withName: "with",stringValue: "raman@ip-172-31-53-77.ec2.internal")
    let set = DDXMLElement(name: "set",xmlns: "http://jabber.org/protocol/rsm")
    let max = DDXMLElement(name: "max",stringValue: "50")
    iq1.addChild(retrieve!)
    retrieve?.addChild(set!)
    set?.addChild(max)
    stream?.send(iq1 )

现在我没有从双方得到历史.这是我得到的结果.

<iq xmlns="jabber:client" 
type="result" 
id="0" 
to="bentick@ip-172-31-53-77.ec2.internal/5qsinh1syg">

<chat xmlns="urn:xmpp:archive" 
with="raman@ip-172-31-53-77.ec2.internal" 
start="2017-02-07T06:28:33.691Z">

	<from secs="0">
	<body>hello</body>
	</from>

	<from secs="405">
	<body>hiii</body>
	</from>

	<from secs="580">
	<body>hey</body>
	</from>

	<from secs="599">
	<body>HooooE</body>
	</from>

	<from secs="628">
	<body>hOo</body>
	</from>

	<from secs="907">
	<body>Raman here</body>
	</from>
	
	<from secs="931">
	<body>Raman here ONE</body>
	</from>

	<from secs="1273">
	<body>Raman here</body>
	</from>

	<from secs="1558">
	<body> Raman from SPark </body>
	</from>

	<from secs="1571">
	<body> Raman from SPark One</body>
	</from>

	<from secs="1782">
	<body>Raman from SPark </body>
	</from>

	<from secs="2651">
	<body>Raman FiVE</body>
	</from>

	<from secs="2810">
	<body>Raman Three</body>
	</from>

	<from secs="2810">
	<body>Raman FOur</body>
	</from>

	<from secs="3534">
	<body>RAMAN SIX</body>
	</from>

	<from secs="4105">
	<body>Raman OKK</body>
	</from>

	<from secs="4113">
	<body>OKKK l</body>
	</from>

	<from secs="4130">
	<body>UST</body>
	</from>

	<set xmlns="http://jabber.org/protocol/rsm">
		<first index="0">0</first>
		<last>17</last>
		<count>18</count>
	</set>
</chat>
</iq>

这是RAMAN不是BENTICK的所有消息,因为这两个用户参与聊天,同时获得历史,我只得到RAMAN的消息.不是BENTICk
如何从双方用户获取历史.

请帮忙.

解决方法

我已经实现了相同的方式来通过发送给定的iq来获取消息
我得到了正确的结果.
let iQ = DDXMLElement.element(withName: "iq") as! DDXMLElement
        iQ.addAttribute(withName: "type",stringValue: "get")
                iQ.addAttribute(withName: "id",stringValue: (xmppHandler.xmppStream?.generateUUID())!)
        let retrieve = DDXMLElement(name: "retrieve",xmlns: "urn:xmpp:archive")
        retrieve?.addAttribute(withName: "with",stringValue: "\(JID!)@\(Utility.hostname)")

        let set = DDXMLElement.element(withName: "set") as! DDXMLElement
        set.addAttribute(withName: "xmlns",stringValue: "http://jabber.org/protocol/rsm")
        let max = DDXMLElement.element(withName: "max") as! DDXMLElement
        max.stringValue = "10"
        max.addAttribute(withName:"xmlns",stringValue: "http://jabber.org/protocol/rsm")

        iQ.addChild(retrieve!)
        retrieve?.addChild(set)
        set.addChild(max as DDXMLNode)
        xmppHandler.xmppStream?.send(iQ)

<iq type="get" id="7705EEC5-3385-42D4-B748-B39C204ADB90"><retrieve xmlns="urn:xmpp:archive" with="0544008296@192.168.2.181"><set xmlns="http://jabber.org/protocol/rsm"><max xmlns="http://jabber.org/protocol/rsm">10</max></set></retrieve></iq>

响应

<iq xmlns="jabber:client" type="result" id="7705EEC5-3385-42D4-B748-B39C204ADB90" to="0509503847@192.168.2.181/Smack">
  <chat xmlns="urn:xmpp:archive" with="0544008296@192.168.2.181" start="2017-02-28T09:55:27.068Z">
    <from secs="0" jid="0544008296@192.168.2.181">
      <body>Hiii rajeev</body>
    </from>
    <to secs="52">
      <body>Hi
        How r u</body>
    </to>
   <from secs="15" jid="0544008296@192.168.2.181"><body>I am good</body></from>
   <to secs="8"><body>What abt u</body></to>
   <to secs="169"><body>Hello testing chat</body></to>
   <from secs="10" jid="0544008296@192.168.2.181"><body>Good</body></from>
   <from secs="5" jid="0544008296@192.168.2.181"><body>Continue </body></from>
   <to secs="834"><body>Ok
    </body></to>
   <to secs="8"><body>Nice chat
    </body></to>
   <from secs="232" jid="0544008296@192.168.2.181"><body>Heelo</body></from>
   <set xmlns="http://jabber.org/protocol/rsm"><first index="0">0</first>     <last>9</last><count>574</count></set></chat></iq>

ios – 在获取聊天记录时,我没有从Openfire获取用户历史记录的更多相关文章

  1. XMPP iOS框架检测与OpenFire服务器的互联网断开连接问题

    我已经使用XMPPiOS框架与OpenFire服务器实现聊天应用程序.幸运的是,应用程序正在运行,但我在应用程序中面临一个互联网断开的问题.当用户正在注销或手动进入离线模式时,它会将节发给他/她的名单.所以他/她的名单知道用户进入离线模式.现在当互联网从用户设备断开连接时,由于互联网断开,应用程序无法向服务器发送存在节.所以他/她的名单将不会获得关于该离线用户的信息,用户将只显示在线模式.我认为像

  2. ios – 在获取聊天记录时,我没有从Openfire获取用户历史记录

    我从openfire中获取历史记录,通过在开火中安装打开的fireplugin并尝试这个代码.现在我没有从双方得到历史.这是我得到的结果.这是RAMAN不是BENTICK的所有消息,因为这两个用户参与聊天,同时获得历史,我只得到RAMAN的消息.不是BENTICk如何从双方用户获取历史.请帮忙.解决方法我已经实现了相同的方式来通过发送给定的iq来获取消息我得到了正确的结果.响应

  3. android – 如何使用Smack了解XMPP openfire中的键入状态

    我正在使用OpenfireXMPP服务器开发聊天应用程序.我可以在两个用户之间进行文字聊天但我想知道某人输入消息时的打字状态.所以我创建了一个类:–但我很困惑,所以它将如何运作?我知道我需要一个数据包,我可以在Listener中使用它.但我无法找到该数据包.请任何人建议,它将如何运作?还有Smack和asmack有什么区别?解决方法要启用ChatStateListener,您需要创建自定义MessageListener类然后创建MessageListener对象然后在createchat方法中传递它Sma

  4. android – 由于通过openfire连接丢失而丢失的消息

    在移动设备上关闭互联网直接导致我的聊天应用程序出现问题.消息不存储在openfire离线表中,因为Openfire仍然显示我在线突然断开与服务器的连接.当重新登录尝试时,在该时间段内发送的消息将丢失.我正在开发一个聊天应用程序,登录到openfire后我可以聊天,其他用户可以在网上看到我,但问题是如果一个用户丢失连接就像WIFI关闭,在这种情况下Openfire没有显示我的状态为离线和它仍然显示在

  5. centos 搭建openfire 结合ldap

    1.先确定linux自带的jdk是否安装,卸载安装的java--sersion查看java版本信息rpm-qa|grepjava查找已经安装的java如果有则使用rpm-e--nodeps卸载rpm-qa|grepgcjrpm-qa|grepjdk如果出现找不到openjdksource的话,还可以这样卸载yum-yremovejava*2.安装jdk,mkdir/usr/javacpjdk-7u

  6. Ubuntu下Openfire的安装

    否则将追究法律责任。http://www.jb51.cc/article/p-zdqilugr-eo.html一、安装JDK、创建保存java的目录administrator@openfire:~$sudomkdir-p/usr/lib/jvm/java、将该文件的权限增加可执行权限administrator@openfire:~$sudou+x/usr/lib/jvm/java/jdk-6u45-linux-x64.bin、执行该文件administrator@openfire:~$cd/usr/lib

  7. ios – XMPPFramework – 从Openfire Server检索归档的消息

    我正在使用XMPP和openfire服务器开发iPhone的聊天应用程序,OpenFire服务器正在存储用户之间的所有聊天记录,但是当我尝试检索特定用户的聊天记录时,我只得到聊天消息的日期和数量实际的短信我已经在openfire上安装了用于邮件归档的打开的归档插件这是我传递给OpenfireServer的节这是我从服务器收到的结果这是我想要的结果,我预期的结果请帮我取得理想的结果谢谢解决方法您必须

  8. xmpp – 如何使用来自openfire服务器的Java Smack库检索聊天历史记录?

    在Openfire服务器中安装OpenArchive插件后,我可以看到来自openfire管理面板的两个用户之间的聊天对话非常简单,也是基于网络的.现在我想从我使用Smack库的聊天客户端应用程序中检索那些对话或聊天记录.我没有找到任何有用的资源.任何建议都会有所帮助.解决方法Smack刚刚实现了MAM功能[XEP0313]但尚未发布,希望在下一版本中获得它,如果你想使用这个功能从source构建smack库,或者你可以使用自定义IQ从服务器获取存档消息.

  9. java – 如何在Openfire中使用smack

    你好我打算开发一个聊天客户端,可以连接到gtalkfacebook等…我决定使用smackAPI和openfire..但是我对如何在openfire服务器上使用它几乎没有什么指导.openfire是否提供基本的用户界面,如登录框聊天窗口等…我需要知道如何使用openfire插入或使用smack谢谢:)解决方法IhavedecidedtousethesmackAPIalongwithopenfire..ButIneedlittleguidanceastohowtouseitwithopenfireserve

随机推荐

  1. iOS实现拖拽View跟随手指浮动效果

    这篇文章主要为大家详细介绍了iOS实现拖拽View跟随手指浮动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  2. iOS – genstrings:无法连接到输出目录en.lproj

    使用我桌面上的项目文件夹,我启动终端输入:cd然后将我的项目文件夹拖到终端,它给了我路径.然后我将这行代码粘贴到终端中找.-name*.m|xargsgenstrings-oen.lproj我在终端中收到此错误消息:genstrings:无法连接到输出目录en.lproj它多次打印这行,然后说我的项目是一个目录的路径?没有.strings文件.对我做错了什么的想法?

  3. iOS 7 UIButtonBarItem图像没有色调

    如何确保按钮图标采用全局色调?解决方法只是想将其转换为根注释,以便为“回答”复选标记提供更好的上下文,并提供更好的格式.我能想出这个!

  4. ios – 在自定义相机层的AVFoundation中自动对焦和自动曝光

    为AVFoundation定制图层相机创建精确的自动对焦和曝光的最佳方法是什么?

  5. ios – Xcode找不到Alamofire,错误:没有这样的模块’Alamofire’

    我正在尝试按照github(https://github.com/Alamofire/Alamofire#cocoapods)指令将Alamofire包含在我的Swift项目中.我创建了一个新项目,导航到项目目录并运行此命令sudogeminstallcocoapods.然后我面临以下错误:搜索后我设法通过运行此命令安装cocoapodssudogeminstall-n/usr/local/bin

  6. ios – 在没有iPhone6s或更新的情况下测试ARKit

    我在决定下载Xcode9之前.我想玩新的框架–ARKit.我知道要用ARKit运行app我需要一个带有A9芯片或更新版本的设备.不幸的是我有一个较旧的.我的问题是已经下载了新Xcode的人.在我的情况下有可能运行ARKit应用程序吗?那个或其他任何模拟器?任何想法或我将不得不购买新设备?解决方法任何iOS11设备都可以使用ARKit,但是具有高质量AR体验的全球跟踪功能需要使用A9或更高版本处理器的设备.使用iOS11测试版更新您的设备是必要的.

  7. 将iOS应用移植到Android

    我们制作了一个具有2000个目标c类的退出大型iOS应用程序.我想知道有一个最佳实践指南将其移植到Android?此外,由于我们的应用程序大量使用UINavigation和UIView控制器,我想知道在Android上有类似的模型和实现.谢谢到目前为止,guenter解决方法老实说,我认为你正在计划的只是制作难以维护的糟糕代码.我意识到这听起来像很多工作,但从长远来看它会更容易,我只是将应用程序的概念“移植”到android并从头开始编写.

  8. ios – 在Swift中覆盖Objective C类方法

    我是Swift的初学者,我正在尝试在Swift项目中使用JSONModel.我想从JSONModel覆盖方法keyMapper,但我没有找到如何覆盖模型类中的Objective-C类方法.该方法的签名是:我怎样才能做到这一点?解决方法您可以像覆盖实例方法一样执行此操作,但使用class关键字除外:

  9. ios – 在WKWebView中获取链接URL

    我想在WKWebView中获取tapped链接的url.链接采用自定义格式,可触发应用中的某些操作.例如HTTP://我的网站/帮助#深层链接对讲.我这样使用KVO:这在第一次点击链接时效果很好.但是,如果我连续两次点击相同的链接,它将不报告链接点击.是否有解决方法来解决这个问题,以便我可以检测每个点击并获取链接?任何关于这个的指针都会很棒!解决方法像这样更改addobserver在observeValue函数中,您可以获得两个值

  10. ios – 在Swift的UIView中找到UILabel

    我正在尝试在我的UIViewControllers的超级视图中找到我的UILabels.这是我的代码:这是在Objective-C中推荐的方式,但是在Swift中我只得到UIViews和CALayer.我肯定在提供给这个方法的视图中有UILabel.我错过了什么?我的UIViewController中的调用:解决方法使用函数式编程概念可以更轻松地实现这一目标.

返回
顶部