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

GateServer #1

Open
Perseus opened this issue Oct 8, 2022 · 2 comments
Open

GateServer #1

Perseus opened this issue Oct 8, 2022 · 2 comments
Assignees

Comments

@Perseus
Copy link
Owner

Perseus commented Oct 8, 2022

Starting with the GateServer component

Why

  • Smallest code-base to port
  • High impact - all requests from the clients flow through this

Goals

  • Fully tested implementation in Rust
  • Expose live metrics and a dashboard (maybe Prometheus?)
  • Maintain or improve performance parity with original GateServer
  • Allow setting up multiple GateServers (multi-region deployments, to act as edge proxies for users)
@Perseus Perseus self-assigned this Oct 8, 2022
@Perseus
Copy link
Owner Author

Perseus commented Oct 9, 2022

Packet Parsing

What

  • Setting up the packet parsing module
  • Decide how to serialize/deserialize packets (better definitions than existing ToP defs)

How

  • Create the packet reading and writing module
  • Create a serialize/deserialize implementation using serde

11-10-2022

Goal:

  • Make a generic Packet type that can use serde and serialize/deserialize from raw bytes

How?

Packet struct is -

pub struct Packet<T> {
    raw_data: BytesMut,
    data: T,
    cmd: Command,
    size: u16,
    offset: u8,
    header: u32,
    reverse_offset: u8,
}
  • T needs to be serializable into bytes

@Perseus
Copy link
Owner Author

Perseus commented Nov 27, 2022

Login Packet

TODO:

  • Login packet gets forwarded to the GroupServer -> AccountServer
  • Validation of all fields (packet middleware?)
  • Response gets relayed back to the client
  • Handle multiple logins for the same account (config value?)

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

No branches or pull requests

1 participant