admin管理员组

文章数量:1794759

JAVA自定义协议解析

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