packMessage function
Implementation
Uint8List packMessage(Map<String, dynamic> header, [Uint8List? data]) {
final jsonMessage = utf8.encode(jsonEncode(header));
final size = jsonMessage.length;
final packet = BytesBuilder();
packet.add(
Uint8List(8)
..buffer.asByteData().setUint32(0, size >> 32, Endian.big)
..buffer.asByteData().setUint32(4, size & 0xffffffff, Endian.big),
);
packet.add(jsonMessage);
if (data != null) {
packet.add(data);
}
return packet.toBytes();
}