serialize static method
Serializes a STOMP frame to bytes
Implementation
static Uint8List serialize(StompFrame frame) {
frame.validate();
final buffer = <int>[];
// Add command
buffer.addAll(utf8.encode(frame.command));
buffer.add(StompConstants.lineFeed);
// Add headers
for (final entry in frame.headers.entries) {
buffer.addAll(utf8.encode(entry.key));
buffer.add(58); // ':'
final value = _shouldEscapeHeaders(frame.command)
? StompEscaping.escape(entry.value)
: entry.value;
buffer.addAll(utf8.encode(value));
buffer.add(StompConstants.lineFeed);
}
// Add empty line to separate headers from body
buffer.add(StompConstants.lineFeed);
// Add body
if (frame.body != null) {
buffer.addAll(frame.body!);
}
// Add NULL terminator
buffer.add(StompConstants.nullByte);
return Uint8List.fromList(buffer);
}