天天看點

OpenFire源碼學習之二十六:Spark&TinderSparkTinder

因為這兩塊比較簡單,内容也比較少。是以就放一塊了。

Spark

這裡的spark是指openfire的一個用戶端,并非目前非常流行的大資料計算架構spark。

Spark頁面圖:

OpenFire源碼學習之二十六:Spark&TinderSparkTinder

Spark的源碼建構

Spark的源碼建構和openfire都差不多。

也都非常的簡單。源碼目錄如下:

OpenFire源碼學習之二十六:Spark&TinderSparkTinder

Spark也是用ant來編譯源碼的

OpenFire源碼學習之二十六:Spark&TinderSparkTinder

源碼啟動類:

OpenFire源碼學習之二十六:Spark&TinderSparkTinder

Tinder

Tinder是openfire官網對xmpp協定做的一個java對象封裝。其中源碼的内容也不多。下面是一張源碼結構圖:

OpenFire源碼學習之二十六:Spark&TinderSparkTinder

下面略略的看看裡面的源碼。首先看看Packet這個類。 位于org.xmpp.packet下。這裡是xmpp消息包的基本屬性配置。比如to、from、id、error等。他有三個大的分類,如圖:

OpenFire源碼學習之二十六:Spark&TinderSparkTinder

IQ又生出了不通的類型。比如type。

public enum Type {

        /**
         * The IQ is a request for information or requirements.
         */
        get,

        /**
         * The IQ provides required data, sets new values, or
         * replaces existing values.
         */
        set,

        /**
         * The IQ is a response to a successful get or set request.
         */
        result,

        /**
         * An error has occurred regarding processing or delivery of a
         * previously-sent get or set.
         */
        error;

   }
           

在之前,我有寫過不同的消息類型比如“sgo”其實這之類的拓展都是基于修改這些包裡面的類容就行了。

關于JID的拓展

private final String node;

private final String domain;

private final String resource;

預設情況下有三個屬性,如何添加新的屬性就比較簡單了吧。按照上面任意一個屬性添加到相關的方法即可。

轉載于:https://www.cnblogs.com/huwf/p/4273342.html