【问题标题】:How to create Empty IQ Packet using Smack 4如何使用 Smack 4 创建空 IQ 数据包
【发布时间】:2020-10-21 04:55:22
【问题描述】:

我正在使用 Smack 4 开发呼叫信号。我想使用 Smack 4 和 Java 发送具有以下格式的 IQ 结果:

<iq from="sister@realworld.lit/home"
id="v73hwcx9"
to="alice@wonderland.lit/rabbithole"
type="result"/>

这是我做过和没做过的事情

public class AcknowledgeIQ extends IQ {

    public AcknowledgeIQ() {
        super("");
        setType(Type.result);
    }

    @Override
    public IQChildElementXmlStringBuilder getIQChildElementBuilder(IQChildElementXmlStringBuilder xml) {
        return null;
    }

    public String toXml(){
        return super.toXML(null).toString();
    }
}

【问题讨论】:

    标签: java android-studio xmpp smack


    【解决方案1】:

    我在 SMACK 4.3.4 上测试了以下代码。

    public class AcknowledgeIQ extends org.jivesoftware.smack.packet.IQ {
    
        public AcknowledgeIQ() {
            super(null, null);
        }
    
        @Override
        public IQChildElementXmlStringBuilder getIQChildElementBuilder(IQChildElementXmlStringBuilder xml) {
            xml.rightAngleBracket();
            return xml;
        }
    }
    

    使用示例:

    AcknowledgeIQ ackIQ = new AcknowledgeIQ();
    ackIQ.setType(org.jivesoftware.smack.packet.IQ.Type.result);
    Log.d(TAG, "AcknowledgeIQ = "+ackIQ.toXML(null).toString());
    

    Logcat 输出:

    AcknowledgeIQ = <iq xmlns='jabber:client' to='alice@wonderland.lit/rabbithole' id='MGr5o-5' type='result'></iq>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多