Hazel-Networking icon indicating copy to clipboard operation
Hazel-Networking copied to clipboard

Added pption to force reliable ordering of TCP messages.

Open Rich2020 opened this issue 6 years ago • 1 comments

Hi Jamie,

As discussed, I've made an option to toggle the forced reliability of TCP message ordering.

I've made changes to two files:

  • Added TcpOptions with property ForceReliableOrdering to enable forced reliable ordering.
  • Modified TcpConnection.BodyReadCallback to make use of ForceReliableOrdering.

I took a quick look, and it seems that the TcpOptions class is a clean way to go as we do not want to have to set forced order reliability twice (on connection and on args.Connection in the NewConnection callback).

To use this, simply put TcpOptions.ForceReliableOrdering = true; anywhere in your code and messages will arrive in the order in which they were sent. By default, this option is set to false.

Please note that I had to add .vs/ to the bottom of the .gitignore file as I was getting sqllite.db locks... see: https://stackoverflow.com/a/48220209/596841

Hope this change is acceptable and that it is helpful.

Kind regards, Rich

Rich2020 avatar Jul 24 '18 08:07 Rich2020

Hi Rich,

Sorry about the delay in reviewing this, my internet's been intermittent the last week!

The changes all look good but my only concern is that some people may prefer the property to be different between connections hence being better as a property of TcpConnection. Maybe new connections could be given the correct value based upon a value set in the listener?

The change for the VSCode folder is absolutely fine!

Jamie

JamJar00 avatar Jul 30 '18 15:07 JamJar00