Mina入门

﹥>﹥吖頭↗ 提交于 2019-12-20 05:30:31

:mina屏蔽了网络通信的一些细节,对sokcet进行封装,并且是NIO的一个实现框架,可以帮助我们快速的开发网络通信,

1.1:mima的工程流程

IOService接口

用户描述我们的客户端可服务端接口,其子类是connector和acceptor,分别用于描述我们的客户端和服务端IOproceser多线程环境来处理我们的连接请求流程   

ioFilter提供数据的过来工作,包括编码,解码,日志等信息的过滤

Hanlder就是我们的业务对象,自定义的hanlder需要实现IOHandlerAcceptor。

 

 

1.2:mina的类结构

 

 

IOService   :描述的是客户端和服务端连接的描述,常常用户接受和发送数据

1.2.1:执行过程

:

1.2.2:设计到的类

 NIOSocketAcceptor       通信管理

 IOseeeion :session管理

IoService:这个接口在一个线程上负责套接字的建立,拥有自己的Selector,监听是否有连接被建立。

IoProcessor:这个接口在另一个线程上,负责检查是否有数据在通道上读写,也就是说它也拥有自己的Selector,这是与我们使用JAVA NIO 编码时的一个不同之处,通常在JAVA NIO 编码中,我们都是使用一个Selector,也就是不区分IoService与IoProcessor 两个功能接口。另外,IoProcessor 负责调用注册在IoService 上的过滤器,并在过滤器链之后调用IoHandler。
IoFilter:这个接口定义一组拦截器,这些拦截器可以包括日志输出、黑名单过滤、数据的编码(write 方向)与解码(read 方向)等功能,其中数据的encode 与decode是最为重要的、也是你在使用Mina 时最主要关注的地方。
IoHandler:这个接口负责编写业务逻辑,也就是接收、发送数据的地方。

 

 

 

 

二:mina的长短连接

长连接:

      客户端和服务端保持一个长时间连接状态, 所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持(不发生RST包和四次挥手)。   

短连接

      短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接(管理起来比较简单,存在的连接都是有用的连接,不需要额外的控制手段);

 

 

三:IOService接口介绍

3.1:IOService:

  3.1.1: IOService 实现了网络通信额客户端和服务端之间的抽象,用于描述客户端额子接口IOConnector,用于描述服务端IOAcceptor

 :3.1.2: IOService可以管理我们网络通信的客户端和服务端,并且可以管理双方回话,session同样可以添加过滤器。

 

 

3.1.3:IOService的类结构

通过扩展子接口和抽象子类达到扩展额目的

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!