Mina框架在项目中的使用.pdf

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
最近由于项目本身的需要,正在进行 Mina 框架的学习,并且将其整合到正在开发的系 统中。下面将会根据实际的工作情况分享一些心得感受。 一、 项目需求: 我们正在开发的系统,现在主要分为两个部分,正两个部分之间需要使用 TCP Socket 进行网络通讯。 具体开发的难点是发送消息的部分。 由于需要考虑到每次创建连接时造成的 系统开销, 所以使用的连接方式必须是长连接,就是保存连接,不能断开。 而且在连接的另 一端发生当机的情况下能够及时回复,不会就此丢掉和这一端的通讯。在连接发送消息后, 能够判定另一端无法及时收到消息的情况,并且做出正确处理。 综上所述,能够整理出如下三条需求: l 两端的连接通讯必须是长连接,不能每次重新建立。 l 在连接断开的情况下能够及时处理,并能有效恢复。 l 发送数据需要有超时机制。 我们这一阶段的 Mina 框架的使用便是围绕着这三条需求展开的。 二、 Mina 框架相关知识简介: 在正式开始 Mina 框架的实际应用前,先简单介绍一些 Mina 的基本知识,以便于下面 的实用场景分析。中间会穿插架构图和示例代码。 在介绍架构之前先认识几个接口: IoAccepter 相当于网络应用程序中的服务器端 IoConnector 相当于客户端 IoSession 当前客户端到服务器端的一个连接实例 IoHandler 业务处理逻辑 IoFilter 过滤器用于悬接通讯层接口与业务层接口 然后可以看一下 Mina 的架构图,如图 2-1Mina 框架图所示。 在图中的模块链中, IoService 便是应用程序的入口, 相当于基本接口中的 IoAccepter , IoAccepter 便是 IoService 的一个扩展接口。 IoService 接口可以用来添加多个 IoFilter ,这 些 IoFilter 符合责任链模式并由 IoProcessor 线程负责调用。而 IoAccepter 在 ioService 接 口的基础上还提供绑定某个通讯端口以及取消绑定的接口。 在日常应用中, 我们可以这样使 用 IoAccepter : IoAcceptor acceptor = new SocketAcceptor(); 相当于我们使用了 Socket 通讯方式作为服务的接入,当前版本的 Mina 还提供了除 SocketAccepter 外的基于数据报文通讯的 DatagramAccepter 以及基于管道通讯的 VmPipeAccepter 。另外还包括串口通讯接入方式,目前基于串口通讯的接入方式已经在最 新测试版的 MINA 中提供。我们也可以自行实现 IoService 接口来使用自己的通讯方式。 而在上图中最右端也就是 IoHandler ,这便是业务处理模块。我们的项目大部分的工作 也就是在这个接口的实现类中完成。 在业务处理类中不需要去关心实际的通讯细节, 只管处 理客户端传输过来的信息即可。编写 Handler 类就是使用 Mina 开发网络应用程序的重心所 在,相当于 Mina 已经帮你处理了所有的通讯方面的细节问题。 为了简化 Handler 类,MINA 提供了 IoHandlerAdapter 类,此类仅仅是实现了 IoHandler 接口,但并不做任何处理。 一个 IoHandler 接口中具有如下一些方法(摘自 Mina 的 API 文档): void exceptionCaught (IoSession session, Throwable cause) 当接口中其他

文档评论(0)

HBXTWLT + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档