narupa.essd.server module¶
Module providing a server for Extremely Simple Service Discovery (ESSD).
Narupa servers can use this class to broadcast themselves on a local area network, using UDP.
Example¶
>>> discovery_server = DiscoveryServer(broadcast_port=54545)
>>> # assume one has created a multiplayer server.
>>> hub = ServiceHub(name="Example Narupa Service Hub", address="[::]")
>>> hub.add_service("multiplayer", 54323)
>>> discovery_server.close()
-
class
narupa.essd.server.DiscoveryServer(broadcast_port: Optional[int] = None, delay=0.5)¶ Bases:
object-
close()¶
-
get_broadcast_addresses_for_service(service)¶
-
is_broadcasting¶
-
log_addresses(level=10)¶
-
register_service(service: narupa.essd.servicehub.ServiceHub)¶ Register a service for discovery.
Parameters: service – Service to register.
-
start()¶
-
unregister_service(service: narupa.essd.servicehub.ServiceHub)¶ Removes a service from discovery.
Parameters: service – The service to remove. :raises KeyError Raised if the service has never been registered with this discovery server.
-
-
narupa.essd.server.configure_reusable_socket() → socket.socket¶ Sets up a socket set up for broadcasting with reuseable address.
Returns: A socket.