View Source Exagon.Zeroconf.Mdns.Dnssd (Exagon Zeroconf v0.1.0)

DNS-SD service discovery.

provides DNS service discrovery over multicast DNS. It uses Exagon.Zeroconf.Mdns.Dnssd.Server to listen for DNS-SD relevand records and build a list of discovred services.

Link to this section Summary

Functions

Returns a specification to start this module under a supervisor.

Dump list of Service discovered by the server.

Callback implementation for GenServer.init/1.

Returns the list of currently discovered services.

Register a process for receiving notifications on added, removed or changed services

Link to this section Functions

Returns a specification to start this module under a supervisor.

See Supervisor.

Dump list of Service discovered by the server.

@spec init(any()) ::
  {:ok, %Exagon.Zeroconf.Mdns.Dnssd.State{mdns_domain: any(), services: map()}}

Callback implementation for GenServer.init/1.

Link to this function

query(namespace \\ ".local")

View Source
@spec query(String.t()) :: list()

Returns the list of currently discovered services.

List can be filtered by providing a domain list. Example:

Exagon.Zeroconf.Mdns.Dnssd.query("_http._tcp.local")

Register a process for receiving notifications on added, removed or changed services

Notifications use Phoenix PubSub.

Listeners will receive:

  • {:service_changed, old_service, service}, when a service DNS data are updated
  • {:service_added, service}, when a new service is discovered