Initial project import
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
class SseFrameAccumulator {
|
||||
String _pending = '';
|
||||
|
||||
List<String> add(String chunk) {
|
||||
_pending = (_pending + chunk).replaceAll('\r\n', '\n');
|
||||
final frames = <String>[];
|
||||
var separator = _pending.indexOf('\n\n');
|
||||
while (separator >= 0) {
|
||||
final frame = _pending.substring(0, separator);
|
||||
_pending = _pending.substring(separator + 2);
|
||||
if (frame.trim().isNotEmpty) frames.add(frame);
|
||||
separator = _pending.indexOf('\n\n');
|
||||
}
|
||||
return frames;
|
||||
}
|
||||
|
||||
List<String> close() {
|
||||
final trailing = _pending.trim();
|
||||
_pending = '';
|
||||
return trailing.isEmpty ? const [] : [trailing];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user