【问题标题】:While fetching Chat History I am Not getting Both user History from Openfire在获取聊天历史记录时,我没有从 Openfire 获得两个用户历史记录
【发布时间】:2017-06-24 08:58:40
【问题描述】:

我通过在 openfire 中安装 open fire 插件从 openfire 获取 History 并尝试了此代码。

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>

这是拉曼的所有信息,而不是 BENTICk,因为这两个用户在获取历史记录时参与聊天,我只收到拉曼的信息。不是本提克 如何从双方用户那里获取历史记录。

请帮忙。

【问题讨论】:

  • 您使用的是 LDAP 还是内置的 openfire 数据库?
  • 这是默认的 openfire 数据库。
  • 您是否已从服务器 > 服务器设置 -> 消息审核策略启用消息审核?
  • 服务器 -> 存档 -> 存档设置(消息和元数据设置)怎么样?
  • @MrPk 我已经检查了很多时间我做错了。但是不知道为什么这两天会发生混乱。仍然没有得到任何解决方案...

标签: ios swift3 xmpp chat openfire


【解决方案1】:

我已经通过发送给定的 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>

【讨论】:

    猜你喜欢
    • 2015-10-25
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    • 2013-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多