-
Notifications
You must be signed in to change notification settings - Fork 5
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
-api should broadcast it's capabilities for clients #205
Comments
@fnoop this is possible via a schema introspection request from the client, which provides the client with the full schema / what it can request. |
Advertise loaded modules and notify changes to schema |
Client work tracked in goodrobots/maverick-web#151 |
We could add an -api parameter to choose which kind of zeroconf to use - either an existing zeroconf service or start a fresh one. So if there's an existing avahi/whatever running on the system we can register with that, otherwise we can start a new service. We can add services to avahi either by placing an xml definition in /etc/avahi/services, or (better) by communicating with it over dbus: python-zeroconf and avahi both listen on udp port 5353 to respond to mdns requests over multicast. We (-api) don't actually want to serve mdns, but rather just the service discovery portion (and just a single entry at that). So logically we don't want to run zeroconf through -api unless we absolutely have to, rather just register a service with an existing zeroconf service. It might be easier to just have avahi as a zeroconf dependency for -api, and just add support to register a new service with avahi? |
Related to #204 - should -api send it's current modules/capabilities so that clients will know what they can/can't request?
For example, if -api doesn't have access to (currently) mavros, then it can't send mavlink/mavros data. The client should then know that so it doesn't request it. But (base) maverick data should still be available at all times, so it should be able to send/request that.
The text was updated successfully, but these errors were encountered: