天天看点

MINA学习笔记

(本文来源于我工作中的笔记,主要是说明MINA2中的几个重要的类的作用,还有一些疑问)

1,IoAcceptor中的bind与unbind的具体实现

2,IoConnector中的connect的实现

3,BaseIoService中的addListener与removeListener的实现

4,IoAcceptor是定义接收连接的接口,IoConnector是定义接连的接口

5,BaseIoAcceptor(抽象类)实现IoAcceptor接口,继承BaseIoService抽象类

6,BaseIoConnector(抽象类)实现IoConnector接口,继承了BaseIoService抽象类

7,BaseIoAcceptor的三个具体实现类:

 1) DatagramAcceptorDelegate : 数据报UDP通信的服务器入口程序.(视频,远程服务)

 2) VmPipeAcceptor : 虚拟通道(VM)通信的服务器入口程序.(无线通信方面)

 3) SocketAcceptor : TCP/IP通信的服务器入口程序.(实时系统)

8,BaseIoConnector的三个对应的实现类:

 1) DatagramConnectorDelegate : 对应连接DatagramAcceptorDelegate

 2) VmPipeConnector : 对应连接VmPipeAcceptor

 3) SocketConnector : 对应连接SocketAcceptor

9,IoFilter(类似于J2EE中的过虑器)作用:记录事件的日志,信息验证,过载控制,信息的转换,测量系统性能

10,IoFilter的实现类IoFilterAdapter(用于供具体的实现类继承),ReferenceCountingIoFilter(监视使用IoFilter的数量)

11,IoFilterAdapter的三个子类:

 1) LoggingFilter : 日志工具

 2) ExcutorFilter : mina自身提供的一个线程池(可以提高性能)

 3) ProtocolFilter : 协议编解码器

12,ObjectSerializationCodecFactory,这是Mina提供的一个Java对象的序列化和反序列化方法

13,mina中的会话IoSession

14,IoHandler(接口)在Mina中属于业务层(类似于J2EE中的Servlet)

15,IoHandler的简单实现类IoHandlerAdpater有三个具体的实现类:

 1) ChainedIoHandler :

 2) StreamIoHandler : 主要用于文件传输时

 3) DemuxingIoHandler : 用于处理多个IoHandler的messageReceived,由于在TCP/IP协议的数据

传输中会出现数据的截断现象(由于socket传输的数据包的长度是固定的,当数据包大于该长度,数据包

就会被截断),所以提供这个类主要是保证IoHandler所处理的数据包的完整性.

16,IoProcessor是一个处理线程池,优化重点,它的主要作用是根据当前连接的状态的变化,来将数据或事件通知到IoFilter