serializeFragments method

  1. @override
List<Uint8List>? serializeFragments(
  1. AbstractMessage message
)
override

Returns encoded message fragments when the serializer can preserve an already-encoded payload without assembling one contiguous frame.

Implementation

@override
List<Uint8List>? serializeFragments(AbstractMessage message) {
  if (message is Call) {
    final prefix =
        '[${MessageTypes.codeCall},${message.requestId},${_serializeCallOptions(message.options)},${_encodeJsonObject(message.procedure)}';
    return _serializeLazyJsonPayloadFragments(prefix, message) ??
        _serializeSingleBinaryPayloadFragments(prefix, message);
  }
  if (message is Publish) {
    final prefix =
        '[${MessageTypes.codePublish},${message.requestId},${_serializePublish(message.options)},${_encodeJsonObject(message.topic)}';
    return _serializeLazyJsonPayloadFragments(prefix, message) ??
        _serializeSingleBinaryPayloadFragments(prefix, message);
  }
  if (message is Yield) {
    final prefix =
        '[${MessageTypes.codeYield},${message.invocationRequestId},${_serializeYieldOptions(message.options)}';
    return _serializeLazyJsonPayloadFragments(prefix, message) ??
        _serializeSingleBinaryPayloadFragments(prefix, message);
  }
  return null;
}