perf(sse): skip line splitting for single-line data events

This commit is contained in:
2026-09-29 12:31:04 +01:00
parent 2cd686a669
commit c25c6e38e1
+12 -4
View File
@@ -315,12 +315,20 @@ func splitSSELines(b []byte) [][]byte {
// "\r" of any kind ever reaches the wire from here, regardless of what
// readSSE upstream of this call did or did not already split it on.
func (s *sseWriter) writeData(b []byte) error {
lines := splitSSELines(b)
buf := make([]byte, 0, len(b)+len(lines)*len(sseDataPrefix)+1)
for _, line := range lines {
var buf []byte
if !bytes.ContainsAny(b, "\r\n") {
buf = make([]byte, 0, len(sseDataPrefix)+len(b)+2)
buf = append(buf, sseDataPrefix...)
buf = append(buf, line...)
buf = append(buf, b...)
buf = append(buf, '\n')
} else {
lines := splitSSELines(b)
buf = make([]byte, 0, len(b)+len(lines)*len(sseDataPrefix)+1)
for _, line := range lines {
buf = append(buf, sseDataPrefix...)
buf = append(buf, line...)
buf = append(buf, '\n')
}
}
buf = append(buf, '\n')