Tigase开发笔记

Tigase学习笔记整理

1、主要分三部分组成:

    1、组件(component,tigase的核心)

    2Plugin(插件,sessionManager组件和C2S组件加载

    3、连接器(认证连接器和用户数据连接器)

2、  组件接口(Component Interface

1、tigase.server.ServerComponent:顶级Component接口,所有的component都必须实现它

       2tigase.server.MessageReceiver:继承ServerComponent接口,如果自定义的组件想像SessionManager一样接收数据包就必须实现它

   3tigase.conf.Configurable实现此接口的类都必须是可配置的,每个实现此接口的类将在运行期被加载,在运行期改变配置将会非常有用

   4tigase.disco.XMPPService:继承该接口的Objects则能够回应ServiceDiscovery请求

   5tigase.stats.StatisticsContainer:Objects继承该类型可以返回运行期的统计结果,任何该类型的Object或者实现该接口的类都可以吧统计结果展示给它允许的用户

抽象类:

1tigase.server.AbstractMessageReceiver:实现了4个基本接口,(ServerComponentMessageReceiverConfigurable and StatisticsContainer),该类采用自身的线程管理内部数据来避免死锁,他提供事件驱动方法processPacketPacket packet来处理数据,你必须在自己的组件中实现该方法,如果改组需要发送或者接收数据包就必须调用boolean addOutPacket(Packet packet)

2tigase.server.ConnectionManager扩展AbstractMessageReceiver的抽象类,此类事用于管理网络连接,如果你的组件需要直接发送和接收来自网络的数据,你就应该实现这个基类,它负责与网络相关的一切事物,I / O操作,重新连接,监听Socket,连接等。如果你继承这个类你就必须处理消息的来源,如果来自MessageRouter 那么就调用abstract void processPacket(Packet packet);方法,如果消息来自网络连接,则abstract Queue processSocketData(XMPPIOService serv);将会被调用。

3、  Plugin接口
目前Tigase已实现的plugin都位于tigase.xmpp.impl包。你可以把下列代码作为示例代码。目前有3种类型的插件接口,全部定义在tiagse.xmpp包。
3.1
XMPPProcessorIfc :最重要也是最基本的插件,这是处理stanzas最基本的模型,他负责接收数据包,并进行处理然后返回处理结果
           XMPPPreprocessorIfc
:负责消息包的预处理
           XMPPPostprocessorIfc
:负责最终数据包的传递
                                               Tigase开发笔记_第1张图片

3- 1
Tigase开发笔记_第2张图片

3-2

4、 Connector:从网络读取的数据都是使用tigase.io包中的代码作为二进制读取的,然后通过tigae.net包转换为字符,然后又通过tigase.xml把字符转换为xml结构。所有在服务端进项交换的数据都是使用XMPP协议定义的xml文件。每一个节点都存储在tigase.xml.Element对象中,每一个Element都包含多个子元素和一系列属性。为了简化必要的数据常见的操作元素被封装在tigase.server.Packet中,它提供了元素最常见的操作

欢迎加入Tigase交流群:207021702


你可能感兴趣的:(开发,XMPP,tigase)