mina - IoService
IoService职责:
- 会话管理:创建和删除会话,检测空闲。
- 过滤链管理:处理过滤链,允许用户动态更改链
- 处理程序调用:在收到一些新消息时调用处理程序,等等
- 统计管理 : 更新发送的消息数、发送的字节数等
- 监听器管理:管理监听器可以设置的监听器
- 通信管理:处理两侧的数据传输
IoService各种方法:
- getTransportMetadata():
此方法返回 IoAcceptor 或 IoConnector 正在运行的传输元数据。典型的详细信息包括提供商名称(nio,apr,rxtx),连接类型(无连接/面向连接)等。
- addListener()
允许添加 IoServiceListener 以侦听与 IoService 相关的特定事件。
- removeListener()
删除附加到此 IoService 的指定 IoServiceListener。
- isDisposing()
此方法指示当前是否正在释放服务。由于可能需要一段时间,因此了解服务的当前状态非常有用。如果已调用 dispose() 方法,则为 true。它不会判断服务是否实际停止(某些会话可能已被处理)
- isDisposed()
此方法指示服务是否已释放。仅当服务分配的所有资源都已释放时,才会将其视为已释放。
- dispose()
此方法释放服务已分配的所有资源。由于可能需要一段时间,用户应使用 isDisposing() 和 isDisposed() 检查服务状态,以了解服务现在是否已完全释放。如果已调用 dispose(布尔) 方法,并且执行线程已完成,则为 true。
- getHandler()
返回与服务关联的 IoHandler
- setHandler()
设置将负责处理服务的所有事件的 IoHandler。处理程序包含您的应用程序逻辑
- getManagedSessions()
返回当前由此服务管理的所有会话的映射。托管会话是添加到服务侦听器的会话。它将用于处理空闲会话和其他会话方面,具体取决于用户添加到服务的侦听器类型。
- getManagedSessionCount()
返回当前由此服务管理的所有会话的数目。
- getSessionConfig()
返回会话配置。
- getFilterChainBuilder()
返回筛选器链生成器。如果要添加一些将在创建会话时注入的新筛选器,这将非常有用。
- setFilterChainBuilder()
定义要与服务一起使用的筛选器链生成器。
- getFilterChain()
返回服务的当前默认筛选器链。
- isActive()
指示服务是否处于活动状态。
- getActivationTime()
返回激活此服务的时间。如果该服务不再处于活动状态,它将返回上次激活此服务的时间。
- broadcast()
将给定消息写入所有托管会话。
- setSessionDataStructureFactory()
设置 IoSessionDataStructureFactory,它为此服务创建的新会话提供相关数据结构。
- getScheduledWriteBytes()
返回计划写入的字节数(即,存储在内存中等待套接字准备好写入的字节数)。
- getScheduledWriteMessages()
返回计划写入的消息数(即,存储在内存中等待套接字准备好写入的消息)。
- getStatistics()
返回此服务的 IoServiceStatistics 对象。