IoService为NIMA提供基本的I/O服务和I/O Session管理。它是NIMA框架最重要的组成部分。实现IoService接口或它的子接口能对底层的I/O进行操作处理。
IoService的思维导图:

Responsabilities:
sessions management :创建和删除sessions
filter chain management :管理过滤链,并允许用户改变
handler invocation :当收到新消息时促发处理
statistics management : 更新发送的消息数量,字节发送,等等....
listeners management : 监听管理
communication management : 处理的数据传输
IoService接口基于管理I/O的,所以有关于I/O的所有功能操作;
接口具体细节,各方法的接口:
- getTransportMetadata()
- addListener()
- removeListener()
- isDisposing()
- isDisposed()
- dispose()
- getHandler()
- setHandler()
- getManagedSessions()
- getManagedSessionCount()
- getSessionConfig()
- getFilterChainBuilder()
- setFilterChainBuilder()
- getFilterChain()
- isActive()
- getActivationTime()
- broadcast()
- setSessionDataStructureFactory()
- getScheduledWriteBytes()
- getScheduledWriteMessages()
- getStatistics()
具体方法的功能可查API文档
IoService两个最重要的实现子类:
- IoAcceptor
- IoConnector
IoAcceptor 负责建立服务端与客服端之间的连接。一定程度上,我们可以称作它是服务端。
IoAcceptor的实现类:
- NioSocketAcceptor : 非阻塞socket传输
- NioDatagramAcceptor : 非阻塞的UDPSocket传输
- AprSocketAcceptor : 基于APR的阻塞的Socket传输
- VmPipeSocketAcceptor : in-VM 传输
IoAcceptor类图:
IoConnector
IoConnector实现类:
- NioSocketConnector : 非阻塞的Socket连接
- NioDatagramConnector : 非阻塞的UDP Socket连接
- AprSocketConnector : 基于APR的阻塞连接
- ProxyConnector : 连接的动态代理
- SerialConnector : 串口连接
- VmPipeConnector : in-VM 连接
IoConnector类图: