Smack Connection 的继承关系和读写接口使用说明
来源:互联网 发布:上海交通大学 网络教育 编辑:程序博客网 时间:2024/06/15 17:14
一、简介
Connection是Smack核心类,提供了灵活的扩展机制和监听器机制。
二、继承关系
Connection是一个抽象类,定义了一组为扩展使用的 Listener 的集合。
XMPPConnection是一个继承了Connection的类,实现了Connection定义的一些方法。
根据前面的文章分析,当Smack 完成资源装载后,完成socket端口绑定,进入监听状态。
三、数据输入和输出的入口
1、所有的接收数据以及接收的状态都发送到右侧上面红色框中的接口的实现类中。
2、发送数据通过XmppConnection的sendPacket(Packet packet)方法,经由PacketWriter-->connection.writer--->socket 发出。
四、接口的分类和作用
1、ConnectionCreationListener 接口
向实现了这个接口的类传递一个 Connection的实例。
2、ConnectionListener 接口
向实现了这个接口的类传递 Connection 的状态,包括:
public void connectionClosed();
public void connectionClosedOnError(Exception e);
public void reconnectingIn(int seconds);
public void reconnectionSuccessful();
public void reconnectionFailed(Exception e);
3、PacketListener 接口(用于读取数据)
向实现了这个接口的类传递 Packet,子类实现
processPacket(Packet packet)
就可以得到 Packet 。
4、PacketInterceptor 接口(用于写入数据)
向实现了这个接口的类传递 Packet,子类实现
interceptPacket(Packet packet)
在packet写入socket之前 通过这个接口可以修改Packet的内容。
5、PacketCollector 类
这是个类,本身内置队列。在将packet分发给其他listener之前,将满足条件的packet加入队列中。
void processPacket(Packet packet) 方法是进入队列,如果队列已满,先进的移除,后进的加入队尾。
void cancel() 方法是清空队列,停止packet搜集。
Packet nextResult() 方法是得到一个有效的Packet,如果没有则等待,直到有效packet返回。
Packet pollResult() 方法是得到一个packet,如果没有可以返回 null。
之后所有的功能和代码都是围绕上述的接口上进行封装和扩展的。
<EOF>
- Smack Connection 的继承关系和读写接口使用说明
- Smack Connection 的继承关系和读写接口使用说明
- Java -- 继承和实现接口的关系
- 浅谈继承关系和接口
- connection和session的关系
- connection和session的关系
- 继承,抽象,接口之间的关系和区别
- 浅谈类、抽象类、接口和继承之间的关系
- 继承,抽象,接口之间的关系和区别
- 类,抽象类,接口和继承之间的关系
- 类、抽象类、接口和继承之间的关系
- 继承、抽象类和接口的特点与关系
- 抽象类与接口之间的继承和实现关系
- androidpn和smack的关系与使用上的差别
- java 接口 实现和继承关系
- java 接口 实现和继承关系
- Java 接口 实现和继承关系
- Java 接口 实现 和继承关系
- GCC 输出乱码的解决方法
- 论文类型Journal、magazin、transaction、letter等的区别
- nefu 459 矩阵连乘
- TNS-01106: "Listener using listener name %s has already been started"
- Pow(x, n):from LeetCode
- Smack Connection 的继承关系和读写接口使用说明
- 【AppCan 开发者第一期】Samlee:西北青年的移动开发梦
- Presenting view controllers on detached view controllers is discouraged
- int main(int argc,char* argv[])详解
- wifi模块调式过程
- Apache优化提高并发数量
- Android4.2.2多媒体架构MediaPlay的创建过程分析(二):解析器的创建
- Last packet sent to the server was 0 ms ago
- POJ 2955 区间DP