/// SignalR text framing (record separator 0x1E). class TextMessageFormat { static const int recordSeparatorCode = 0x1e; static final String recordSeparator = String.fromCharCode(recordSeparatorCode); static String write(String output) => '$output$recordSeparator'; static List parse(String input) { if (input.isEmpty || input.codeUnitAt(input.length - 1) != recordSeparatorCode) { throw StateError('Message is incomplete.'); } final List messages = input.split(recordSeparator); messages.removeLast(); return messages; } }