Mina概念:
Apache的Mina(Multipurpose Infrastructure NetWorked Applications)是一个网路应用框架,可以帮助用户开放高性能和搞扩展的网路应用程序;它提供了一个抽象的、事件驱动的异步API,使用Java NIO在各种传输协议(如TCP/IP、/UDP/IP协议等)下快速高效开发。
接口IoAccepter:相当于网路应用程序的服务端。
接口IoConnector:相当于网络应用程序的客户端。
接口IoSession:当前客户端连接到服务端的一个连接实例。
接口IoHandler:业务处理逻辑。
接口IoFilter:过滤器用于连接通讯层接口和业务层接口。
类NioSocketAcceptor:用于创建服务端监听;
类NioSocketConnector:用于创建客户端连接;
类IoSession:用来保存会话属性和发送消息;
类IoHandlerAdapter:用于定义业务逻辑
类NioSocketConnector:用于创建客户端连接;
类IoSession:用来保存会话属性和发送消息;
类IoHandlerAdapter:用于定义业务逻辑
MINA基本框架图:
IoService是应用程序的入口,相当于IoAcepter接口,可以添加多个IoFilter,然后由IoProcessor调用。
当前MINA提供了套接字通信SocketAccpter、数据报文通讯DatagramAccpter和管道通信VmPipeAccepter。
IoHandler是业务处理模块,此类中不需要关心通讯细节,只需管理客户端传来信息即可。
IoHandler接口方法:
execptionCaught(IoSession session,Throwable cause):接口中其他方法抛异常时触发;
messageReceiver(IoSession session,Object message):接收到客户端请求信息时触发;
messageSent(IoSession session,Object message):信息传送给客户端时触发;
sessionClose(IoSession session):连接关闭时触发;
sessionOpened(IoSession session):连接打开时触发;
sessionCreate(IoSession session):连接创建时触发;
sessionIdle(IoSession session,IdleStatus status):连接空闲时触发。
IoService:负责底层通讯接入;
IoHandler:负责逻辑处理业务;
IoFilter:连接IoService和IoHandle的桥梁,任何用途都可以。
MINA自带的常用过滤器有:LoggingFilter(日志记录)、BlackFilter(黑名单过滤)、CompressionFilter(压缩)、SSLFilter(加密)。