EmbeddedChannel: make write not auto-flush & websockets: connection closed frame must be flushed #421
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 CONTAINS TWO COMMITS, PLEASE DON'T SQUASH AND MERGE
part 1
EmbeddedChannel: make write not auto-flush
Motivation:
EmbeddedChannel just treated all
write
s as flushed. That's not a goodidea as all real channels obviously only actually write the bytes when
flushed. This changes that behaviour for
EmbeddedChannel
.Modifications:
write
only write to a bufferflush
then actually pretend to write the bytesResult:
part 2
websockets: connection closed frame must be flushed
Motivation:
Because EmbeddedChannel used to treat all writes as flushed the test
that tested that we do send out the WebSockets connection close frame
didn't actually test the right thing. Now that EmbeddedChannel behaves
more realisticly, this test actually fails.
This fixes the bug and the test that tests that a WebSockets connection
is successfully torn down after an error occured.
Modifications:
writeAndFlush
to send out the connection close frame.Result:
WebSockets connection actually gets closed on error.