如何在 smack 中实现消息确认
Posted
技术标签:
【中文标题】如何在 smack 中实现消息确认【英文标题】:How to implement message Acknowledgement in smack 【发布时间】:2017-02-15 05:06:34 【问题描述】:我已经在我的 android 应用程序中成功实现了一对一聊天。现在我想知道我的消息是否已送达。我用谷歌搜索了我的问题,但找不到任何解决方案。
提前致谢。
【问题讨论】:
【参考方案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 正确,则可能是您的服务器端有问题。以上是关于如何在 smack 中实现消息确认的主要内容,如果未能解决你的问题,请参考以下文章