【问题标题】:How to implement message Acknowledgement in smack如何在 smack 中实现消息确认
【发布时间】:2017-02-15 05:06:34
【问题描述】:

我已经在我的 android 应用程序中成功实现了一对一聊天。现在我想知道我的消息是否已送达。我用谷歌搜索了我的问题,但找不到任何解决方案。

提前致谢。

【问题讨论】:

    标签: android xmpp smack


    【解决方案1】:

    您可以尝试在 Smack 中使用 ReceiptReceiveListener。

    public class YourFragment extends Fragment implements ReceiptReceivedListener {
    
        @Override
        public void onReceiptReceived(String fromJid, String toJid, String receiptId, Stanza receipt) {
            if(isAdded()){
                // Check if the receiptId equals to the receipt you have sent.
            }
        }
    }
    

    【讨论】:

    • 我已经试过了。我在传出消息中添加了消息打包 id 并收到了它,但无法理解如何处理该 id ??
    • 在我的代码中,id 用于检查应将哪条消息标记为“已接收”。假设您的聊天视图中有 100 条消息,并且该应用程序在此视图中为每条消息收到 100 条回执,因此您需要知道在收到一张回执后应该将哪条消息标记为“已收到”。而receiptId就是为了这个目的。
    • 对不起。我有点困惑。在我的列表视图中,没有唯一的字段/ID 以及特定的消息。所以请告诉我如何生成动态 id,以便我可以在收到确认时将特定消息标记为已传递?
    • id是SMACK在Message对象中自动生成的
    • @begginer 我会说你能检查一下服务器是否有问题..?如果 JID 正确,则可能是您的服务器端有问题。
    猜你喜欢
    • 2014-09-10
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多