encode method

Uint8List encode()

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();
}