# nettyIOT **Repository Path**: stevenworkshop_admin/nettyIOT ## Basic Information - **Project Name**: nettyIOT - **Description**: 使用Netty来进行采集 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-10-26 - **Last Updated**: 2022-11-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # nettyIOT #### 介绍 使用Netty来进行采集 #### 软件架构 软件架构说明 这个项目是从JavaNIO基础视频教程 Mina视频教程,Netty快速入门视频中的12章 分析设计一个聊天室的小项目作为基础。 有Netty与Spring的结合,Hibernate的集合。是自定义的通信协议的案例 与Netty书中的案例12章进行对比。可以作为采集的版本在这个基础上进行演进。 私有协议的定义 与Spring的集成 与Hibernate的集成 与ch12章的区别 一、与Spring的集成 与Spring的集成有2种方法 第一种方式,是在Netty中起到SpringMVC及Spring的框架。在github上有NettySpring的开源项目,上面有Netty中启动SpringMVC,并且 设置Mock的Servlet环境的数据。这个时候,可以把Netty作为Tomcat来启动。因为Netty没有Servlet环境,所以要启动SpringMVC的时候 需要设置Mock的Servlet的环境。 第二种方式,在Spring中启动Netty,Netty作为一个Bean。在本项目中就采用该方式。 实现的方法 与ch12的差异 1、定义私有的协议 发送的格式与接收的格式中间差一个状态码。在CH12中是采用type字段来区别是接收还是返回。发送的格式与接收的格式就一致了。 但是 Http协议的发送格式与接收格式的报文是不一样的。 如果为简化起见,可以采用一样的处理方式 协议格式映射的类 游戏映射的是一个类,在书中采用了一个header+nettyMessage2个类 2、编码 都是编为2进制,这里面,序列化的方式不一样 3、解码 游戏采用自己写的解码方式,继承ByteToMessageDecoder 这种解码,有点复杂。 书中采用的是,继承LengthFieldBasedFrameDecoder 明显,解码的工作大大简化。 4 书中采用心跳的方式 游戏没有采用心跳连接 5 业务上,书中没有 游戏中有这个业务连接,并且采用类似的Control的方式来实现业务,方便程度高。 客户端也有直接处理的代码。 后面要改造的部分 把第二本书的例子调试一次,非功能特征的内容可以考虑进行加载。 因当前已经是Spring管理的,那么针对Spring中的拦截,数据验证等应该都可以用到。 在这个例子中已经采用了。 改造的地方 client收到结果,进行保持库操作。 采用书中LengthFieldBasedFrameDecoder来替换解码 整理出Word文档,私有协议栈的开发 整理 对象的序列化的方式方法(xml,json等) 看一下2个差异,为什么session是单独的,感觉应该在协议中增加session,但是游戏上没有增加,需要分析原因? 心跳应该也有可能需要? login的2个比较 重点分析一下书中10章,12章,基本上就所有的场景都清楚了 #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)