持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第5天,点击查看活动详情
MessagePack 格式
官网:msgpack.org/
It's like JSON. but fast and small.
MessagePack 是一种高效的二进制序列化格式。它允许您在 JSON 等多种语言之间交换数据,但它更快更小,小整数被编码为一个字节,典型的短字符串除了字符串本身之外只需要一个额外的字节。
手动解析 msgpack 消息
kawanet.github.io/msgpack-lit…
引入 msgpack_dart 库
官网中 Dart 的库有两个,暂时先选择 msgpack_dart
flutter pub add msgpack_dart
flutter pub get
+ msgpack_dart: ^1.0.0
代码中引入库文件
+ import "package:msgpack_dart/msgpack_dart.dart" as m2;
Uint8List 数据处理
获取第一个元素的值
buffer.first
从 index 为 1 的位置生成新的 Uint8List
Uint8List list = Uint8List.sublistView(buffer, 1);
消息内容处理的代码
print('message buffer: $buffer');
Uint8List list = Uint8List.sublistView(buffer, 1);
if (1 == buffer.first) {
Map m = m2.deserialize(list);
print('message: $m');
} else {
print('message: 消息未解析');
}