admin管理员组文章数量:1794759
JAVA自定义协议解析
在JAVA中, 一般来说自定义协议都是涉及到物联网平台。字节数组和对象操作特别多。
使用netty, 然后使用byteBuffer 进行解包 或者 封包操作。
平时来说这个是没什么问题的。 但是 很多时候我们开发讲究的是效率。
所以这里我推一波我自己写的开发框架。magic-byte
1. 引入框架包
<!-- mvnrepository/artifact/io.github.misterchangray/magic-byte --> <dependency> <groupId>io.github.misterchangray</groupId> <artifactId>magic-byte</artifactId> <version>1.0.1</version> </dependency>2. 编写实体类定义
@MagicClass(autoTrim = true) public class Phone { @MagicField(order = 1, size = 8) private String brand; @MagicField(order = 2) private long phone; // getter and setter }上面的意思是,序列化字节 第一个元素是 brand, 占用 8个字节, 第二个元素是 phone, 占用 8个字节。
3. 使用框架进行序列化
Phone p = new Phone(); byte[] tmp = MagicByte.unpackToByte(p); // 对象序列化到字节 Phone pack = MagicByte.pack(tmp, Phone .class); // 字节序列化到对象soeay,.对吧
这样可以节省不少的劳动力的。
此框架在我司内部项目已经运行超过2年, 40W设备在线。
附上项目地址:
GitHub - MisterChangRay/magic-byte: faster convert byte to java object tool faster convert byte to java object tool. Contribute to MisterChangRay/magic-byte development by creating an account on GitHub.github/misterchangray/magic-byte欢迎点赞,沟通。
版权声明:本文标题:JAVA自定义协议解析 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686777131a101458.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论