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.