1.IoService的作用

IoService提供了基本的io服务并管理 I/O Sessions,详细内容如下:

  • sessions管理 : 创建和删除sessions, 检测 idleness.
  • 过滤器链管理 : 处理过滤链, 允许用户改变过滤链
  • handler 触发: 当接收到新消息等时,调用 handler
  • 统计管理 : 更新下面发送的信息量:消息, 比特流, 和其他的东西
  • 监听器管理 : 管理用户可以建立的监听器
  • 通信管理 : 处理服务端和客户端两者之间的数据传输

2.IoService详细

IoService是所有IoConnector和IoAcceptor的父接口,提供io服务和session管理。提供了如下方法:

  • getTransportMetadata()
  • addListener()
  • removeListener()
  • isDisposing()
  • isDisposed()
  • dispose()
  • getHandler()
  • setHandler()
  • getManagedSessions()
  • getManagedSessionCount()
  • getSessionConfig()
  • getFilterChainBuilder()
  • setFilterChainBuilder()
  • getFilterChain()
  • isActive()
  • getActivationTime()
  • broadcast()
  • setSessionDataStructureFactory()
  • getScheduledWriteBytes()
  • getScheduledWriteMessages()
  • getStatistics()

3.服务端IoService之IoAcceptor

创建

public TcpServer() throws IOException {// Create a TCP acceptorIoAcceptor acceptor = new NioSocketAcceptor();// Associate the acceptor to an IoHandler instance (your application)acceptor.setHandler(this);// Bind : this will start the server...acceptor.bind(new InetSocketAddress(PORT));System.out.println("Server started...");
}

// Create an UDP acceptor
IoAcceptor acceptor = new NioDatagramAcceptor();

销毁

// Stop the service, waiting for the pending sessions to be inactive
acceptor.dispose();
或者
// Stop the service, waiting for the processing session to be properly completed
acceptor.dispose( true );

获取IoService状态:

isActive()

isDisposing()

isDisposed()

管理IoHandler

setHandler(IoHandler) 或者 getHandler()

管理过滤器链

// Add a logger filter
DefaultIoFilterChainBuilder chain = acceptor.getFilterChain();
chain.addLast("logger", new LoggingFilter());或者
// Add a logger filter
DefaultIoFilterChainBuilder chain = new DefaultIoFilterChainBuilder();
chain.addLast("logger", new LoggingFilter());// And inject the created chain builder in the service
acceptor.setFilterChainBuilder(chain);

4.客户端IoService之IoConnector

  • NioSocketConnector : the non-blocking Socket transport Connector
  • NioDatagramConnector : the non-blocking UDP transport * Connector*
  • AprSocketConnector : the blocking Socket transport * Connector*, based on APR
  • ProxyConnector : a Connector providing proxy support
  • SerialConnector : a Connector for a serial transport
  • VmPipeConnector : the in-VM * Connector*

转载于:https://www.cnblogs.com/davidwang456/archive/2013/04/09/3000717.html

mina 之IoService(翻译)相关推荐

  1. MINA系列学习-IoAccpetor

    MINA系列学习-IoAccpetor 其实在mina的源码中,IoService可以总结成五部分service责任.Processor线程处理.handler处理器.接收器和连接器,分别对应着IoS ...

  2. MINA与JMX集成(翻译)

    JMX(Java Management Extensions)用来管理和监视java应用程序. 增加JMX支持 为使MINA应用程序支持JMX,需要做以下工作: 创建/获取MBean服务器 // cr ...

  3. mina应用程序架构(翻译)

    原文地址:http://mina.apache.org/mina-project/userguide/ch2-basics/application-architecture.html 鸟瞰图 内览图及 ...

  4. mina与spring集成(翻译)

    源地址:http://mina.apache.org/mina-project/userguide/ch17-spring-integration/ch17-spring-integration.ht ...

  5. 快速开发mina(翻译)

    本文的源地址为:http://mina.apache.org/mina-project/quick-start-guide.html 本文带你进入如何建立一个基于mina程序的全过程.本文将带领你建立 ...

  6. Apache MiNa 2 学习笔记

    http://blog.csdn.net/cgwcgw_/article/details/18402769 http://download.csdn.net/detail/xiaozhu_1986/2 ...

  7. Mina源码阅读笔记(一)-整体解读

    2019独角兽企业重金招聘Python工程师标准>>> 今天的这一节,将从整体上对mina的源代码进行把握,网上已经有好多关于mina源码的阅读笔记,但好多都是列举了一下每个接口或者 ...

  8. Camera开发系列之六-使用mina框架实现视频推流

    章节 Camera开发系列之一-显示摄像头实时画面 Camera开发系列之二-相机预览数据回调 Camera开发系列之三-相机数据硬编码为h264 Camera开发系列之四-使用MediaMuxer封 ...

  9. Apache Mina 介绍

    为什么80%的码农都做不了架构师?>>>    1.MINA 框架简介 下图为本人根据对MINA的简要理解,所画出来的框架简图: Apache MINA 是一个网络应用框架,有助于用 ...

最新文章

  1. 【2019.7.16 NOIP模拟赛 T1】洗牌(shuffle)(找环)
  2. 读书笔记之费曼讲义第一册
  3. VTK修炼之道6_仔细分析一个复杂程序
  4. OpenCASCADE:OCCT应用框架OCAF之函数机制使用示例
  5. java 分布式电子商务云平台b2b b2c o2o需要准备哪些技术??
  6. 【操作系统】哲学家就餐问题
  7. 怎么把分开的pdf放在一起_糖和盐混在一起了要怎么分开?| 趣问万物
  8. Modularity QuickStart学习
  9. 华中科技大学计算机网络实验_第四届江苏省计算机网络与云计算新技术研讨会在南京召开...
  10. 合并两个有序链表 java_合并两个有序链表
  11. mysql 1z0_MySQL 8 OCP(1Z0-908)认证考试题库原题(第12题)
  12. kubernetes endpoints是什么
  13. DM7达梦数据库介绍和安装
  14. 数值计算之 插值法(3)多项式插值法的解,范德蒙矩阵,龙格现象
  15. 关于微信小程序开发者工具的版本管理使用介绍
  16. Windows Server 2012开机账户自动登录
  17. ictclas4j java_ictclas4j 分词工具包 安装流程
  18. Windows10+YOLOV3+VisualStudio2017最新版本超详细过程
  19. 【转】linux服务器的Gzip文件压缩方法
  20. JVM —— Java 对象占用空间大小计算

热门文章

  1. c++ 冒泡排序_学习笔记-详解冒泡排序
  2. 高性能计算机系统及应用,高性能计算
  3. 表格某一列不固定其余全固定_如何利用Python一键拆分表格并进行邮件发送~
  4. 如何在Panel中嵌入子窗体
  5. bootstrap 获取表格修改的结果_bootstrap-table前端修改后台传来的数据重新进行渲染...
  6. android android studio单元测试实例
  7. Fragment碎片的基本使用(手机平板需要更好地兼容)
  8. DialogFragment 全屏显示
  9. Ubuntu 20.04 LTS安装搜狗输入法,只需三条命令,还能自动更新
  10. python 爬虫输出为空,python爬取文件时,内容为空