您的位置:首页 > 编程语言 > Java开发

浅谈Java的Mina框架传递对象

2011-03-22 14:56 288 查看
  接触java的Mina框架已经有很多时间了, 其中的通讯部分用到了java中自带的InputStream, Writer, Reader等等, 觉得其中的很大的一个效果就是难以将事务处理的逻辑层与解析层分分开来, 不够模块化, Writer, Reader等进行通讯的时候我们会将信息编码转化成字节流等进行信息传递, InputStream, 而Writer, 如果客户端将这条消息和恳求发送给了服务器, 服务器要想失掉消息和恳求的真正内容(在这里区分是“你好吗?”和“视频”)并进行处理和应答就必需进行信息的解析, 就要一条一条的进行判别:1、如果是信息是

  ……格式的就将其看作是一条恳求;3、如果是其他方式就将其视为无效信息, 当然这不失为一种办法可以进行信息的提取?俏颐腔岱⑾衷谡飧龉讨行畔⒌姆⑺汀⒔邮堋⒔馕觥⒋怼⒂Υ鸬榷际且惶跻惶醯模?很是零散, 比较难以一致, 这样写好了一个程序, 比较繁琐, 还容易出错。

  这是我们会自然的想到要用一种东西将各个格式的信息进行分类一致同来并方便进行一些必要的信息处理, 为符合这些特点, 我们会想到类这个东东恰恰满足了这些性质, 我们可以将信息的格式中的内容定义为类的属性, 而对这些属性的处理就可以用类中的方法来予以解决,

  这种思想有了, 那就是在通讯的时候直接进行方式上的对象传递(实际上在通讯的时候都是最终以字节流的方式进行传递的), 那么我们就要找一种工具进行这种方式的信息传递, 对了, Objectmessage), 这是进行消息接收是可以被触发的一个方法, 这时您会发现message的类型是Object型, 而类Object是类层次结构的根类, 当然可以用对象型的作为message啦!前面提到通讯的时候都是最终以字节流的方式进行传递的, 这样就要进行:对象(客户端)->字节流(客户端)->发送->接收->字节流(服务器)->对象(服务器)的过程, 呵呵不用担忧, 这些繁琐的过程, 在此就不在赘述了)

  经过程序您会看到对象已经成功传递并进行了相关属性的输入, io. Serializable序列化接口

  2、您会发现实例中的类尤其是相关的IoHandlerAdapter继承类都采用了单实例形式, 那就错了, 细心的博友看到这个包结构:

  其中服务器和客户端共用了中间的Mina. 现在的效果是, 一定是服务器和客户端是要分开的, 所以那个Mina. Object包是不能共享的, 所以效果来了(1)、如果将userinfo放到客户端中, 那么该怎么用instanceof进行判别是不是userinfo呢(这时你已经不能再引入服务器中的userinfo了)(2)、如果在客户端和服务器中都编写一个类定义一样的userinfo, 可是他们这两个类是分属不同的包, 所以是两个不同的类了, 最初想了想那个(2)或容许以改动改动就可以解决, 效果的关键在于两个UserInfo分属于两个不同的包, 一个是客户端, 这样都可以区分树立名字都是Object的包, 这样可不可行呢, 这样就就解决了下面的效果工程图如下
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息