encode method
Encode the package (head + payload) in a Uint8List for sending to the server.
Implementation
Uint8List encode() {
final payloadData = payload.encode();
// Prepare 4 bytes for the head:
// 3 bytes for length, 1 for sequenceID.
final header = ByteData(4);
header.setUint8(0, payloadData.lengthInBytes & 0xFF);
header.setUint8(1, (payloadData.lengthInBytes >> 8) & 0xFF);
header.setUint8(2, (payloadData.lengthInBytes >> 16) & 0xFF);
header.setUint8(3, sequenceID);
final writer = ByteDataWriter(endian: Endian.little);
writer.write(header.buffer.asUint8List());
writer.write(payloadData);
return writer.toBytes();
}