Async server example and constructor with rx_remainder for async framer #19
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.
Added an async server example.
The newly added constructor was required because
read_header
already reads from the stream before the websocket upgrade even happens.Also, I fixed some stuff clippy was not satisfied with.
When looking at the
client_async
example, I noticed that the same buffer is used for rx and tx. While this might be fine in this simple case, I think in more general scenarios it could violate the contract described inframer_async::Framer::read
This should in my opinion not be in an example in this way, but to have similar implementations for
client_async
andserver_async
, I also reused the same buffer for reading and writing.Are there ways to enforce the mentioned contract? E. g. by not only storing indices into the buffer (
frame_cursor
,rx_remainder_len
), but also a&mut [u8]
in theFramer
struct? Or would this conflict with the design you have in mind?Anyway, that is not really part of this PR.
Thank you for creating this repo, and have a nice day!