OpenFire源码学习之二十六:Spark&Tinder
因为这两块比较简单,内容也比较少。所以就放一块了。
Spark
这里的spark是指openfire的一个客户端,并非目前非常流行的大数据计算框架spark。
Spark页面图:
Spark的源码构建
Spark的源码构建和openfire都差不多。
也都非常的简单。源码目录如下:
Spark也是用ant来编译源码的
源码启动类:
Tinder
Tinder是openfire官网对xmpp协议做的一个java对象封装。其中源码的内容也不多。下面是一张源码结构图:
下面略略的看看里面的源码。首先看看Packet这个类。 位于org.xmpp.packet下。这里是xmpp消息包的基本属性配置。比如to、from、id、error等。他有三个大的分类,如图:
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;
默认情况下有三个属性,如何添加新的属性就比较简单了吧。按照上面任意一个属性添加到相关的方法即可。