parseSseStream function

Stream<ServerSentEvent> parseSseStream(
  1. Stream<List<int>> bytes
)

Implementation

Stream<ServerSentEvent> parseSseStream(Stream<List<int>> bytes) async* {
  var buffer = '';
  await for (final chunk in bytes.transform(utf8.decoder)) {
    buffer += chunk;
    while (true) {
      final separator = _eventSeparator.firstMatch(buffer);
      if (separator == null) break;
      final block = buffer.substring(0, separator.start);
      buffer = buffer.substring(separator.end);
      final event = _parseSseBlock(block);
      if (event != null) yield event;
    }
  }
  final event = _parseSseBlock(buffer);
  if (event != null) yield event;
}