菜鸟教程小白 发表于 2022-12-13 02:03:14

ios - 无法在 XMPP 中获取消息传递回执


                                            <p><p>我是 XMPP 的新手。我正在为我的聊天应用程序使用 XMPP 和 Open fire 服务器。该应用程序正在运行,但现在我想获取消息传递回执。我为此使用以下代码,
在 <code>setupStream</code>:</p>

<pre><code>   xmppMessageDeliveryRecipts = [ initWithDispatchQueue:dispatch_get_main_queue()];
   xmppMessageDeliveryRecipts.autoSendMessageDeliveryReceipts = YES;
   xmppMessageDeliveryRecipts.autoSendMessageDeliveryRequests = YES;
   ;
</code></pre>

<p>在<code>sendMessage</code>中:</p>

<pre><code>    NSString *messageID=;
    NSXMLElement *message = ;
    ;
    ;
    ;
    ;
</code></pre>

<p>但我无法获得消息送达回执。我怎么才能得到它?有人知道吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您已经收到了送达回执响应,但 <code>XMPPMessageDeliveryReceipts</code> 模块不会自动处理它。您需要存储所有传入和传出的消息(检查 <code>XMPPMessageArchiving</code> 模块,它可以将消息保存在 <code>XMPPMessageArchiving_CoreDataStorage</code> 实例中),检查消息是否 <code>hasReceiptResponse</code> (在 <code>XMPPMessage+XEP_0184</code> 类别中定义),在接收响应中找到消息 id 并在消息存储中将相应的消息标记为“已交付”(您可能需要添加新属性,例如“已交付”到 <code>XMPPMessageArchivingCoreDataObject</code>如果你会使用这个模块,或者制作你自己的存储机制)</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 无法在 XMPP 中获取消息传递回执,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/25887754/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/25887754/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 无法在 XMPP 中获取消息传递回执