OpenFire源码学习之二十六:Spark&Tinder

因为这两块比较简单,内容也比较少。所以就放一块了。

Spark

这里的spark是指openfire的一个客户端,并非目前非常流行的大数据计算框架spark

Spark页面图:

OpenFire源码学习之二十六:Spark&Tinder

Spark的源码构建

Spark的源码构建和openfire都差不多。

也都非常的简单。源码目录如下:

OpenFire源码学习之二十六:Spark&Tinder

Spark也是用ant来编译源码的

OpenFire源码学习之二十六:Spark&Tinder

源码启动类:

OpenFire源码学习之二十六:Spark&Tinder

Tinder

Tinderopenfire官网对xmpp协议做的一个java对象封装。其中源码的内容也不多。下面是一张源码结构图:

OpenFire源码学习之二十六:Spark&Tinder

下面略略的看看里面的源码。首先看看Packet这个类。 位于org.xmpp.packet下。这里是xmpp消息包的基本属性配置。比如to、from、id、error等。他有三个大的分类,如图:

OpenFire源码学习之二十六:Spark&Tinder

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

[java] view plain copy
  1. public enum Type {  
  2.   
  3.         /** 
  4.          * The IQ is a request for information or requirements. 
  5.          */  
  6.         get,  
  7.   
  8.         /** 
  9.          * The IQ provides required data, sets new values, or 
  10.          * replaces existing values. 
  11.          */  
  12.         set,  
  13.   
  14.         /** 
  15.          * The IQ is a response to a successful get or set request. 
  16.          */  
  17.         result,  
  18.   
  19.         /** 
  20.          * An error has occurred regarding processing or delivery of a 
  21.          * previously-sent get or set. 
  22.          */  
  23.         error;  
  24.   
  25.    }  

在之前,我有写过不同的消息类型比如“sgo”其实这之类的拓展都是基于修改这些包里面的类容就行了。

关于JID的拓展

private final String node;

private final String domain;

private final String resource;

默认情况下有三个属性,如何添加新的属性就比较简单了吧。按照上面任意一个属性添加到相关的方法即可。