• maven_spring mvc_mina_dome(实体,文件,批传)(spring mina 初学dome)


    看我们群里经常有人在问mina心跳问题,虽然俺是菜鸟可是觉得挺简单的啊,就写了个dome,希望大家多多提意见。

    俺做过一段时间网络协议。所以觉得挺简单的吧。哎呀,反正技术就那样了没啥难的。

    废话不多说了,附上项目,需要的人down下来跑一下吧。maven构建的,只要jar都down下来了,我想跑就没问题。本来不太习惯写注释,还是特意添加了些。

    mina的好处:自己搜了,俺是菜鸟嘛,也没用几次,就觉得mina的异步io(不用为每个连接创建线程),事件驱动(不懂就搜,我也不太懂反正就是好)还挺好的。

    说说思路吧:

    第一步:将 文件/json/……装入实体,所有你想传输的都可以装入实体(注意大文件不适合,因为内存溢出问题,非要传就该边读边写了。mina也支持udp传输,大文件传输我这就不实现了),实体最好分head和body,

    head:放数据包基本信息(比如:一个完整数据包总长度,数据类型(心跳包/数据包/大文件/身份认证等)),

    body:放具体的数据类容。

    第二步:hander将封装好的实体交由编码工厂(过滤器链),mina有基本的编码器需要自己添加,但通常是不能够满足我们需求的,所以通常自己实现编码器并加入过滤链中。

    第三步:解码(顾名思义就是将接收的数据包转换成实体。编码工厂包含编解码,注意解码顺序,先放进去的想取出来,也就是先进先出原则)。

    第四步:过滤链跑完后将实体交由hander,自己在根据具体的业务需求完成进一步的操作,到此整个mina的工作就完成了。

    我也很少写博客,就快过年了嘛,公司也没啥事,就写个了,写到这才发觉没发上床附近,尻尻尻…………………………………….

    只有上传到网盘里,需要的去下吧,有什么不好需要改进的欢迎留言:http://pan.baidu.com/s/1gd5NA5l

    本项目实现了:实体、文件、批量传输

    使用说明:本项目是maven构建自己看着办,目地是与spring集成所以顺便搞成spring mvc的了,所以运行环境最好是tomcat了,其他web服务器没测过啊,

    里面包含j2se的servicemina类可以直接运行,看需要了。某些地方的注释可以取消或添加方便测试心跳了,自己试吧。

    over

  • 相关阅读:
    GridView合并行代码
    GridView合并行头代码
    Javascript 的几种写法与提示
    [转] 浅谈MSSQL锁机制
    Two ways of using memory: Stack and Heap
    You have to know how .Net code "managed"?
    Sql Server Profiler
    InterProcess Communication
    database Index
    敏捷开发
  • 原文地址:https://www.cnblogs.com/kunsyliu/p/springmvc_mina.html
Copyright © 2020-2023  润新知