Skip to content

asynchronous feature initialization #4557

Description

@totaam

Somewhat related to #4523.
We already do something similar to this for the keyboard: 7d344bc, except generic.
On the server side, we should be able to initialize subsystems when we get their specific data.
For backwards compatibility, we still need to send a full hello packet synchronously.
Maybe add a toggle to use the new "fast" startup?
Or we could abuse the challenge hello: pretend we expect authentication, which will send a partial hello - then we can figure out if asynchronous mode is supported by the server? (meh: this could make things slower with an extra roundtrip)

The server side is easier, we can just call parse_client_caps when we get the data.

def parse_client_caps(self, c: typedict) -> None:

Then get the caps:
def get_caps(self) -> dict[str, Any]:

And send them to the client.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions