Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Better packet sending #523

Open
2 tasks
UnknownShadow200 opened this issue Jun 3, 2018 · 2 comments
Open
2 tasks

Better packet sending #523

UnknownShadow200 opened this issue Jun 3, 2018 · 2 comments
Labels

Comments

@UnknownShadow200
Copy link
Collaborator

  • Need to use NonBlocking sending of data
  • Need to rethink how we handle send failures - at the moment, can cause up to 30 seconds of where nothing seems to happen.

The 30 seconds was supposed to be a workaround for a few second dropout, although I don't know how effective that is (or if it even works at all).

@I-Tom-I
Copy link

I-Tom-I commented Jun 19, 2018

It would be amazing if the client can reestablish a dropped connection transparently without the player noticing, possibly with a little help from the server (to sync client side block updates etc that happened while the connection was down)

@UnknownShadow200
Copy link
Collaborator Author

Eh, client and servers would have to be modified somehow to keep track of last packet other side received and processed (maybe packet ID counter added each packet), and store all unsent packets in the interim. That adds quite a bit of overhead in both network and memory usage.

Not to mention having to consider all the other various details

  • Servers have to store per-session state somewhere now
  • Server would have to drop unsent packets after certain timeout
  • What happens if player was in middle of a minigame
  • What happens if map player is on gets unloaded
  • etc

Seems a lot of work and overhead for little benefit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants