Mina框架IoSession详解

  • 时间:
  • 浏览:0
  • 来源:uu快3官网pk10_uu快3官方邀请码_官网ios版

通已经面 的分析,亲戚亲戚朋友可知,IoSession在基于Mina进行网络通信的过程中,对于网络通信相关操作的请求都有基于一个IoSession实例来进行的,本来我说,IoSession在Mina中是一个有点痛 要的特性。

对应的情况汇报迁移图,如图所示:

最后,亲戚亲戚朋友看一下NioSocketSession实例被创建的时机。嘴笨 很容易想到,当一次网络通信结束英语 英文的已经,也本来我客户端连接到服务器端的已经,服务器端首先进行accept,这已经一次会话才被启动,也本来我在你这人是被创建,拿Mina中的NioSocketAcceptor类来看,创建NioSocketSession的代码,如下所示:

对于IoSession接口类,我在上图把具有不同类于型功能的操作进行了分类,说明如下:

根据后面 的类图,亲戚亲戚朋友分析一下NioSocketSession类的源代码。

AbstractIoSession实现了IoSession接口中定义的大多数办法,亲戚亲戚朋友关注读和写一个重要的办法,愿因亲戚亲戚朋友最终也被NioSocketSession类所继承。

先看读数据请求办法read,如下所示:

通过Mina官 网文档,亲戚亲戚朋友还前要看了,有如下十几个 情况汇报:

再看,NioSession类中增加了一个返回IoProcessor实例的抽象办法,而你这人IoProcessor是在创建一个IoSession实例(同类于,还前要实例化一个NioSocketSession)的已经,由内控 传到IoSession内控 。亲戚亲戚朋友知道,IoProcessor是Mina框架底层真正用来补救实际I/O操作的补救器,通过一个IoSession实例获取一个IoProcessor,还前要方便地响应作用于IoSession的I/O读写请求,从而由你这人IoProcessor直接去补救。

根据Mina框架挂接,IoService->IoFilter Chain->IoHandler,亲戚亲戚朋友知道在IoFilter Chain的一端(头部)已经会调用补救实际的I/O操作请求,也本来我IoProcessor前要补救的逻辑,没法 还前要想象到,IoProcessor被调用的位置,还前要查看org.apache.mina.core.filterchain.DefaultIoFilterChain类的源代码,其中定义了一个内控 类,源码如下所示:

通已经面 的情况汇报图,亲戚亲戚朋友还前要看出,是哪个事件的地处使得IoSession进入哪个情况汇报,比较直观明了。下面,亲戚亲戚朋友看一下IoSession对应的设计,类继承关系如下所示:

可见,IoSession在Mina框架中的位置是相当重要的。

再看一下,写数据请求办法write,如下所示: