标签:ref 体系 vat 之间 很多 准备 需求 sch 参考
MINA IoService - 如应用程序体系结构一章所示,是支持所有IO服务的基类,可以是服务器端,也可以是客户端。
它将处理与您的应用程序以及远程对等方的所有交互,发送和接收消息,管理会话,连接等。
它是一个接口,实现为服务器端的IoAcceptor和客户端的IoConnector。
我们将在这些章节中解释这些接口:
IoService提供基本的I / O服务并管理MINA中的I / O会话。它是MINA Architecture最重要的部分之一。 IoService和子接口的实现类是处理大多数低级I / O操作的地方。
让我们试着看看IoService的职责是什么,它实现了AbstractIoService类。让我们采用略微不同的方法,首先使用思维导图,然后跳入内部工作。思维导图是使用XMind创建的。
如上图所示,IoService有许多责任:
所有这些方面将在以下章节中描述。
IoService是所有IoConnector和IoAcceptor的基本接口,提供I / O服务和管理I / O会话。该接口具有执行I / O相关操作所需的所有功能。
让我们深入了解界面中的各种方法:
此方法返回IoAcceptor或IoConnector正在运行的传输元数据。典型的细节包括提供者名称(nio,apr,rxtx),连接类型(无连接/面向连接)等。
允许添加IoServiceListener以侦听与IoService相关的特定事件。
删除附加到此IoService的指定IoServiceListener。
此方法告知当前是否正在处理该服务。由于可能需要一段时间,因此了解服务的当前状态很有用。
此方法告知服务是否已被处置。只有在已分配的所有资源都已释放时,才会将服务视为已处置
此方法释放服务已分配的所有资源。由于可能需要一段时间,用户应使用isDisposing()和isDisposed()检查服务状态,以了解服务现在是否已完全处理。
关闭服务时务必调用dispose()!
返回与服务关联的IoHandler。
设置将负责处理服务的所有事件的IoHandler。处理程序包含您的应用程序逻辑
返回此服务当前管理的所有会话的映射。托管会话是添加到服务侦听器的会话。它将用于处理空闲会话和其他会话方面,具体取决于用户添加到服务的侦听器的类型。
返回此服务当前管理的所有会话的数量。
返回会话配置。
返回Filter链构建器。如果想要添加一些将在创建会话时注入的新过滤器,这将非常有用。
定义要与服务一起使用的过滤器链构建器。
返回服务的当前默认Filter链。
判断服务是否处于活动状态。
返回激活此服务的时间。如果服务不再处于活动状态,它将返回上次激活此服务的时间。
将给定消息写入所有托管会话。
设置IoSessionDataStructureFactory,为此服务创建的新会话提供相关的数据结构。
返回计划写入的字节数(即存储在内存中的字节,等待套接字准备写入)。
返回计划写入的消息数(即存储在内存中的消息,等待套接字准备写入)。
返回此服务的IoServiceStatistics对象。
IoService是一个由MINA中最重要的两个类实现的接口:
为了构建服务器,您需要选择IoAcceptor接口的实现。对于客户端应用程序,您需要实现IoConnector接口的实现。
基本上,此接口由于accept()方法而命名,负责在客户端和服务器之间创建新连接。服务器接受传入的连接请求。
在某些时候,我们可以将此接口命名为“Server”(这是即将推出的MINA 3.0中的新名称)。
由于我们可能处理多种传输(TCP / UDP / ...),因此我们为此接口提供了多个实现。你不太可能需要实现一个新的。
我们有很多实现类:
1.NioSocketAcceptor:非阻塞的Socket传输IoAcceptor
2.NioDatagramAcceptor:非阻塞UDP传输IoAcceptor
3.AprSocketAcceptor:阻塞Socket传输IoAcceptor,基于APR
4.VmPipeSocketAcceptor:in-VM IoAcceptor
只需挑选一个适合您需求的产品。
这是IoAcceptor接口和类的类图:
由于我们必须为服务器使用IoAcceptor,因此必须为客户端实现IoConnector。同样,我们有许多实现类:
1. NioSocketConnector:非阻塞Socket传输IoConnector
2. NioDatagramConnector:非阻塞UDP传输IoConnector
3. AprSocketConnector:基于APR的阻塞Socket传输IoConnector
4. ProxyConnector:提供代理支持的IoConnector
5. SerialConnector:用于串行传输的IoConnector
6. VmPipeConnector:VM内IoConnector
只需挑选一个适合您需求的产品
以下是IoConnector接口和类的类图:
参考 : http://mina.apache.org/mina-project/userguide/ch3-service/ch3-service.html
标签:ref 体系 vat 之间 很多 准备 需求 sch 参考
原文地址:https://www.cnblogs.com/fubinhnust/p/9941077.html