Add zeroconf to job_server and listener to client

This commit is contained in:
Brett Williams
2023-06-01 20:02:15 -05:00
parent 997feb74cc
commit 1dca7d8029
3 changed files with 15 additions and 9 deletions

View File

@@ -1,13 +1,12 @@
import logging
import socket
import time
from zeroconf import Zeroconf, ServiceInfo, ServiceBrowser, ServiceStateChange
logger = logging.getLogger()
class ZeroconfServer:
class ZeroconfServer():
def __init__(self, service_type, server_name, server_port):
self.service_type = service_type
self.server_name = server_name
@@ -16,9 +15,11 @@ class ZeroconfServer:
self.zeroconf = Zeroconf()
self.service_info = None
self.client_cache = {}
self.properties = {}
def start(self):
self._register_service()
def start(self, listen_only=False):
if not listen_only:
self._register_service()
self._browse_services()
def stop(self):
@@ -33,7 +34,7 @@ class ZeroconfServer:
f"{self.server_name}.{self.service_type}",
addresses=[socket.inet_aton(self.server_ip)],
port=self.server_port,
properties={},
properties=self.properties,
)
self.service_info = info
@@ -61,7 +62,7 @@ class ZeroconfServer:
# Example usage:
if __name__ == "__main__":
server = ZeroconfServer("_zordon._tcp.local.", "Zordon", 5000)
server = ZeroconfServer("_zordon._tcp.local.", "deathstar.local", 8080)
server.start()
# Run your Flask application or perform other tasks