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.