gpt4 book ai didi

Android smack 服务器回执确认

转载 作者:太空狗 更新时间:2023-10-29 15:32:24 26 4
gpt4 key购买 nike

我正在尝试使用 XMPP 制作聊天应用程序。为此,我引用了 this tutorial并成功实现。但是现在我无法让服务器接收到该特定消息并更新我的本地数据库。请给我任何想法如何做到这一点。

我正在用 chatId 保存一条消息。那么我从哪种 smack 方法中得到这个回执消息 id?

最佳答案

  1. 您需要通过消息id来保存您的消息,您可以通过message.getStanzaId()获取id。
  2. 您必须启用 stream management .

    static {
    XMPPTCPConnection.setUseStreamManagementDefault(true);
    XMPPTCPConnection.setUseStreamManagementResumptiodDefault(true);
    }
  3. 当您发送消息时,您会为该消息添加一个 ack 监听器,如下所示。

    try {
    if (mConnection.isSmEnabled()) {
    try {
    mConnection.addStanzaIdAcknowledgedListener(message.getStanzaId(), new StanzaListener() {
    @Override
    public void processPacket(Stanza packet) throws NotConnectedException {
    updateMessageStatus(packet);
    }
    });
    } catch (StreamManagementException.StreamManagementNotEnabledException e) {
    e.printStackTrace();
    }
    }
    mConnection.sendStanza(message);
    } catch (NotConnectedException e) {
    e.printStackTrace();
    }

    现在,在 updateMessageStatus(packet) 方法中,您可以通过 ID (packet.getStanzaId()) 在数据库中找到消息,并将状态从“待定”更新为“已发送”。

    Please take note that your server needs to enable stream management too.

关于Android smack 服务器回执确认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35161740/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com