Conversation
…e. Only think left now is to implement Ack, Nack, and framing and we should be set
feat: Add queues feat: Add reliable windows feat: Finish recv queue feat: Fix fragmentation
…s somewhat unstable)
… (for whatever reason)
This was
linked to
issues
Aug 21, 2023
Closed
Closed
Closed
Closed
Closed
Member
Author
|
🎉 🦀 |
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 version aims to improve the API from that of
v2to resolve issues like:asyncmodel, and setup for Allow other async runtimes such as async-std #26Current Changelog for v3
netrex_eventshas been dropped and you should use the newerConnection::recv_event()channel instead.rakrs::starthas been dropped, you should userakrs::Listener::bind()in conjunction withrakrs::Listener::start()instead.Every packet sent to the client is now exposed with
Connection::recv()with the exception of the handshake sequence. This will allow you to write your own handlers for certain packets. However keep in mind, the protocol specific packets such as Ack, Nack, and disconnects are not exposed.The
internalmodule has been completely nuked and replaced withSendQueueandRecvQueue's.ACK, and NACK are now handled within their queues respectively, and follow a
TimeRecoveryQueue.Added
TimeRecoveryQueuewhich is a queue with a max capacity. This queue is elegant and a packet within the queue will expire only if one of the following conditions is met:The packet is pushed off the queue because newer packets have been added.
The packet has not been removed and it's been in the queue for too long of a duration.
Added
RecoveryQueuewhich is a smart queue that will remove a index if and only if a newer packet is added that shifts the queue or if the retry attempts are greator than the value set within the queue, (which is 3 by default),Please see: Raknet V3 for a up to date road map.