addChunk method
- String chunk
Feeds a raw chunk and returns every complete event it terminated.
Implementation
List<SseEvent> addChunk(String chunk) {
_buffer.write(chunk);
final events = <SseEvent>[];
var text = _buffer.toString();
var consumed = 0;
while (true) {
final frameEnd = _findFrameEnd(text, consumed);
if (frameEnd == -1) break; // frame not complete yet
final frame = text.substring(consumed, frameEnd);
consumed = frameEnd;
final event = _parseFrame(frame);
if (event != null) events.add(event);
}
if (consumed > 0) {
_buffer.clear();
_buffer.write(text.substring(consumed));
}
return events;
}