websocket: fix parsing of control frames #3239
Closed
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 relates to #2859
Rationale
If a PING frame is received before binary/text frames is received, those data will be dropped.
Message data is decoded to UTF-8 text if the
opcode
is TEXT, or converted to Blob or ArrayBuffer if it is BINARY. However, the receiver (ByteParser
) determines that theopcode
of a frame that cannot be fragmented, such as a PING, is theopcode
of a potentially fragmented message. And it will not be overturned until a message handler is called. Therefore, by restricting the type ofopcode
that is set inthis.#info.originalOpcode
, we ensure that messages are processed accordingly with the appropriateopcode
.Changes
Features
N/A
Bug Fixes
Breaking Changes and Deprecations
N/A
Status