SmackIQ包的擴展

如果我們要擴展一個如下所示的IQ包:

成都創(chuàng)新互聯(lián)于2013年創(chuàng)立,先為石獅等服務(wù)建站,石獅等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為石獅企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

<iq id="0001" to="search@jiyq.cn" type=”get”>    <query xmls="emcc.jiyq" condition="what"/>
        <extrament>element</extrament>
    <query></iq>

需要定義一個自定義IQ進行擴展:

Smack IQ包的擴展

package com.emcc.stc.demo.iq;import org.jivesoftware.smack.packet.IQ;public class SampleIQ extends IQ
{
    String condition;
    String value;    protected SampleIQ(String childElementName, String childElementNamespace,
            String condition, String value)
    {        super(childElementName, childElementNamespace);        this.condition = condition;        this.value = value;
    }    /**
     * 最關(guān)鍵的實現(xiàn)類     */
    @Override    protected IQChildElementXmlStringBuilder getIQChildElementBuilder(
            IQChildElementXmlStringBuilder xml)
    {
        xml.attribute("condition", condition);
        xml.rightAngleBracket();
        xml.element("extraElement", "value");        return xml;
    }    public static void main(String[] args)
    {
        IQ iq = new SampleIQ("query", "emcc.jiyq", "what", "elemeng");
        System.out.println(iq.toXML());
    }
}

Smack IQ包的擴展

這種方式的好處是,每一種IQ都有特定定義,每個自定義IQ類都有其應(yīng)用場景,而且無需再手動配置XML。

另外,可以編寫相應(yīng)的IQParser解析特定類型的IQ包,更加利于使用。

最后,Smack的文檔是相當(dāng)缺失的,很多問題,還是仔細閱讀源代碼比較好。

文章名稱:SmackIQ包的擴展
網(wǎng)頁URL:http://muchs.cn/article10/jehgdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、網(wǎng)站設(shè)計公司定制開發(fā)、網(wǎng)站改版、、App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)