Repository navigation
Flush SSE responses through middleware wrappers - #19
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request refactors the
Flushlogic in the SSE writer to better support middleware wrappers and adds comprehensive tests for these behaviors. The main change is to usehttp.NewResponseControllerfor flushing, which follows theUnwrap()chain and honors customFlushErrorimplementations, making the SSE writer more robust and middleware-friendly.SSE Writer Flushing Improvements
Writerstruct inexp/sse/sse.goto remove the directhttp.Flusherfield and instead usehttp.NewResponseController(s.w).Flush()for flushing, ensuring compatibility with middleware wrappers and honoringFlushErrormethods. [1] [2] [3]README.mdto clarify thatFlushnow follows middleware wrappers and honors theirFlushErrormethods.Testing Enhancements
exp/sse/flush_test.goto verify thatFlushworks through middleware wrappers (usingUnwrap()), honorsFlushErrorimplementations, and gracefully handles uninitialized writers.Minor Documentation Cleanup
README.mdfor clarity.