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

Server groups #142

Closed
HimbeerserverDE opened this issue Dec 7, 2023 · 1 comment
Closed

Server groups #142

HimbeerserverDE opened this issue Dec 7, 2023 · 1 comment
Labels
enhancement New feature or request

Comments

@HimbeerserverDE
Copy link
Owner

Allow groups of multiple servers to be defined in the config, likely as a struct field of the Server type as this approach provides the highest level of safety when it comes to dynamic servers. This would make a simple builtin load balancer possible, though #129 should be used instead if there are special requirements.

The following features should take server groups into account:

  • Fallback
  • Default server
  • Hopping (non-raw only)

ClientConn should not get a new exported accessor for the current server group. It will be accessible by using the server name as a key to the server map of the config. The DefaultServer* functions in config.go should be refactored accordingly.

There should probably be chat commands to switch servers by group or send other players to a new server group.

@HimbeerserverDE
Copy link
Owner Author

Fallback will be excluded since chaining is possible and more predictable. As for hopping, there's going to be a new HopGroup method. The default Hop method is not going to process groups to keep this feature optional and avoid user confusion.

Please open a new issue if any of the above turn out to be useful.

HimbeerserverDE added a commit that referenced this issue Dec 8, 2023
Not a full implementation of #142 yet: default server isn't handled as it needs to be refactored separately (#140).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant