首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Mina 根本使用和常用类的介绍

2012-10-28 
Mina 基本使用和常用类的介绍Mina 的全称是 Multipurpose Infrastructure for Network Applications ,是用

Mina 基本使用和常用类的介绍
Mina 的全称是 Multipurpose Infrastructure for Network Applications ,是用于开发高性能和高可用性的网络应用程序的基础框架。
通过使用 Mina 框架可以可以省下处理底层I/O和线程并发等复杂工作,开发人员能够把更多的精力投入到业务设计和开发当中。

框架经常使用以下几个类:
NioSocketAcceptor 类用于创建服务端监听;NioSocketConnector 类用于创建客户端连接;IoSession 类用来保存会话属性和发送消息;IoHandlerAdapter 类用于定义业务逻辑。


程序运行后,可以通过 telnet 连接到 6789 端口,测试一下 TimeServerHandler 类的功能。

基本的流程如下:
User -> IoService -> IoProcessor -> IoFilter -> IoFilter -> IoHandler
对象 <-    对象   <-       对象     <-   对象 <-   对象  <-    对象

以下是框架核心接口的简单说明:
org.apache.mina.core.service.IoService 接口:
它是 IoAcceptor 和 IoConnector 的父接口,是框架所有功能的总接口。
它有一个实现类 AbstractIoService ,它有一个 Executor 来处理事件,还有一个 AtomicInteger 确保 ID 的唯一。

org.apache.mina.core.service.IoAcceptor 接口:
它用于绑定 IP 和端口,接收客户端的连接请求,同时会触发相应的事件给 IoHandler 去处理。
它有一个实现类 AbstractIoAcceptor ,是基本功能的实现,此类承继了 AbstractIoService 类。
AbstractIoAcceptor 有一个子类 AbstractPollingIoAcceptor<S extends AbstractIoSession, H> ,轮询的方式处理会话和服务器端 socket 连接。
上面介绍的 NioSocketAcceptor 类就是 AbstractPollingIoAcceptor<S extends AbstractIoSession, H> 的子类。
AbstractIoAcceptor 有一个子类 AbstractPollingConnectionlessIoAcceptor<S extends AbstractIoSession, H> ,处理数据报文的传输。

org.apache.mina.core.service.IoConnector 接口:
它用于连接服务器指定的 IP 和端口,发送客户端的连接请求,同时会触发相应的事件给 IoHandler 去处理。
它有一个实现类 AbstractIoConnector ,是基本功能的实现,此类承继了 AbstractIoService 类。
AbstractIoConnector 有一个子类 AbstractPollingIoConnector<T extends AbstractIoSession, H> ,轮询的方式处理会话和客户端 socket 连接。
上面介绍的 NioSocketConnector 类就是 AbstractPollingIoConnector<S extends AbstractIoSession, H> 的子类。

org.apache.mina.core.service.IoProcessor<S extends IoSession> 接口:
它负责实际的 IO 操作。
它有一个实现类 SimpleIoProcessorPool<S extends AbstractIoSession> ,负责管理具体的会话。
它有一个实现类 AbstractPollingIoProcessor<S extends AbstractIoSession>,轮询的方式的 IO 操作。

org.apache.mina.core.service.IoHandler 接口:
负责处理所有被框架触发的事件,这些事件是 IoProcessor 发出来的,并且同一个 IoProcessor 负责处理多个会话。
它有一个默认的实现类 IoHandlerAdapter ,只是用适配器模式简单的封装。

org.apache.mina.core.service.IoServiceListener 接口:
它继承 java.util.EventListener 接口,负责监听 IoService 相关的事件。
和它相关的有一个类 IoServiceListenerSupport ,负责将 IoService 和对应监听器整合到一起,方便使用。

org.apache.mina.core.session.IoSession 接口:
它表示通信双端的连接,与底层的传输类型无关。

org.apache.mina.core.session.IoSessionConfig 接口:
它表示会话的配置信息,包含读缓冲区大小、会话数据吞吐量、计算吞吐量时间间隔、指定会话端的空闲时间和写请求的超时时间等等。

org.apache.mina.core.session.IoSessionInitializer<T extends IoFuture> 接口:
它定义了一个回调函数,可以通过 AbstractIoService 类的 initSession 方法作为参数使用。

org.apache.mina.core.session.IoSessionRecycler 接口:
它负责回收不再使用的会话。
它有一个实现类 ExpiringSessionRecycler ,用于回收超时失效的会话。

org.apache.mina.core.session.IoEvent 类:
它实现了 Runnable 接口,表示一个事件或请求,它根据事件类型向会话的过滤器链上的监听者发出信号。

org.apache.mina.core.session.IoEventType 枚举:
它定义了事件的类型。

以上只是底层结构的说明,实现机制还需要从上层的具体类的调用进行分析。

热点排行