类 NetWorkReader
java.lang.Object
top.redstarmc.plugin.velocitytitle.core.util.NetWorkReader
本工具类由 AI 生成
跨服通信的消息读写工具类,负责字符串数组与字节数组的相互转换, 支持网络传输中的消息序列化与反序列化,并标记消息解析状态。
跨服通信的消息读写工具类,负责字符串数组与字节数组的相互转换, 支持网络传输中的消息序列化与反序列化,并标记消息解析状态。
核心功能:
- 将字符串数组(业务数据)序列化为字节数组(网络传输格式)
- 将字节数组(网络接收数据)解析为字符串数组(供业务逻辑使用)
- 通过
isCompleted()标记消息是否解析完成,确保数据完整性
使用示例:
// 序列化:将字符串数组转为字节数组(发送时)
byte[][] data = NetWorkReader.buildMessage("BroadcastRaw", "player123", "Hello");
// 反序列化:将接收的字节数组解析为字符串数组(接收时)
NetWorkReader reader = NetWorkReader.read(receivedBytes);
if (reader.isCompleted()) {
String[] parts = reader.build();
// 处理业务逻辑
}
-
方法概要
修饰符和类型方法说明String[]build()获取解析后的字符串数组。static byte[][]buildMessage(@NotNull String... parts) 将字符串数组序列化为字节数组,用于网络传输。boolean判断消息是否解析完成。static NetWorkReaderread(byte[] data) 将字节数组解析为 NetWorkReader 实例,提取其中的字符串数组。
-
方法详细资料
-
read
将字节数组解析为 NetWorkReader 实例,提取其中的字符串数组。 解析逻辑:先读取数组长度,再依次读取每个字符串(使用 UTF-8 编码)。- 参数:
data- 待解析的字节数组(通常来自网络传输)- 返回:
- 包含解析结果的 NetWorkReader 实例
- 抛出:
IOException- 若字节数组格式错误或读取失败(如长度不匹配)
-
buildMessage
将字符串数组序列化为字节数组,用于网络传输。 序列化逻辑:先写入数组长度,再依次写入每个字符串(使用 UTF-8 编码)。- 参数:
parts- 待序列化的字符串数组(第一个元素通常为消息类型,如 "BroadcastRaw")- 返回:
- 包含序列化结果的字节数组(外层数组用于支持分片传输,当前实现为单个数组)
- 抛出:
IOException- 若字符串序列化失败(如包含不支持的字符)
-
isCompleted
public boolean isCompleted()判断消息是否解析完成。- 返回:
- 若解析完成(所有字符串均被正确读取)则返回 true,否则返回 false
-
build
获取解析后的字符串数组。 需先通过isCompleted()确认解析完成,否则可能返回不完整数据。- 返回:
- 解析后的字符串数组,若未完成解析则返回空数组
-