SmackIQ包的擴(kuò)展

如果我們要擴(kuò)展一個(gè)如下所示的IQ包:

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

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

需要定義一個(gè)自定義IQ進(jìn)行擴(kuò)展:

Smack IQ包的擴(kuò)展

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)鍵的實(shí)現(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包的擴(kuò)展

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

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

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

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

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

廣告

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

微信小程序開發(fā)