菜鸟教程小白 发表于 2022-12-11 19:22:18

ios - 检索消息存档 - XMPPFramework iOS


                                            <p><p>我正在开发 ios 消息应用程序,我使用了 <a href="https://github.com/robbiehanson/XMPPFramework" rel="noreferrer noopener nofollow">XMPPFramework</a> 。</p>
<p>此 XMPPFramework 支持 XEP-0313 <a href="https://github.com/robbiehanson/XMPPFramework/blob/master/Extensions/XEP-0313/XMPPMessageArchiveManagement.m" rel="noreferrer noopener nofollow">Message Archive Management</a> 。</p>
<p>我在 openfire 上启用了监控服务,它正在归档消息。</p>
<p>我想从服务器检索存档消息到 iOS 应用程序。我研究了 google 和 StackOverflow,但没有找到有关如何检索归档消息并将其保存到核心数据的有用资源(默认情况下由 XMPPFramework 使用)。</p>
<p>我知道这个 StackOverflow <a href="https://stackoverflow.com/questions/11397172/xmppframework-retrieve-archived-messages-from-openfire-server/20045656" rel="noreferrer noopener nofollow">answer</a> 它向我展示了如何通过 IQ 节从 XMPP 检索消息,但我想直接通过这个已经支持但我不知道如何实现的 XMPPFramework 直接检索消息?我想检索两个用户之间特定日期之后发生的所有对话。</p>
<p>任何帮助将不胜感激,在此先感谢您,并为我的英语不好感到抱歉。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>希望不迟到,因为我遇到了同样的问题。
首先看一下:<a href="https://xmpp.org/extensions/xep-0313.html#entities" rel="noreferrer noopener nofollow">https://xmpp.org/extensions/xep-0313.html#entities</a>
您有 xml 示例,并且需要实现 XMPPFramework 来构建此类消息。这是我的例子:</p>

<pre><code>let query = DDXMLElement.init(name: &#34;query&#34;, xmlns: &#34;urn:xmpp:mam:2&#34;)

let x = DDXMLElement.init(name: &#34;x&#34;, xmlns: &#34;jabber:x:data&#34;)
x.addAttribute(withName: &#34;type&#34;, stringValue: &#34;submit&#34;)


let f1 = DDXMLElement.init(name: &#34;field&#34;)
f1.addAttribute(withName: &#34;var&#34;, stringValue: &#34;FORM_TYPE&#34;)
f1.addAttribute(withName: &#34;type&#34;, stringValue: &#34;hidden&#34;)
let f1value = DDXMLElement.init(name: &#34;value&#34;)
f1value.stringValue = &#34;urn:xmpp:mam:2&#34;

let f2 = DDXMLElement.init(name: &#34;field&#34;)
f2.addAttribute(withName: &#34;var&#34;, stringValue: &#34;start&#34;)

let f2value = DDXMLElement.init(name: &#34;value&#34;)
f2value.stringValue = &#34;2010-06-07T00:00:00Z&#34;

f1.addChild(f1value)
f2.addChild(f2value)
x.addChild(f2)
x.addChild(f1)
query.addChild(x)

let iq :XMPPIQ = XMPPIQ(iqType: XMPPIQ.IQType.set, to: someJID, elementID: &#34;someId&#34;, child: query)
print(iq)
self.xmppController?.xmppStream.send(iq)
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 检索消息存档 - XMPPFramework iOS,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/47506865/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/47506865/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 检索消息存档 - XMPPFramework iOS