Permessage-deflate calls zlib flush with wrong flush level #733
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.
I started wondering why very similar packets didn't compress better. Turns out the Node.js API for
zlib
is a tad bit misleading: the kind of flush needs to be specified when callingflush
even if it's been specified in the options (see https://nodejs.org/api/zlib.html#zlib_zlib_flush_kind_callback).This pull requests calls
flush
with the correct level and adds a test that checks that the compression actually makes similar packets smaller.Note: I gave this only a very preliminary testing. Please do testing across more browsers before even considering merging.