mirror of
https://github.com/blw1138/Zordon.git
synced 2025-12-17 08:48:13 +00:00
Add zeroconf to job_server and listener to client
This commit is contained in:
@@ -5,11 +5,12 @@ import tkinter as tk
|
||||
import threading
|
||||
import time
|
||||
import socket
|
||||
import os
|
||||
import os, sys
|
||||
from tkinter import ttk, messagebox
|
||||
from PIL import Image, ImageTk
|
||||
from new_job_window import NewJobWindow
|
||||
from server_proxy import RenderServerProxy
|
||||
sys.path.append("../")
|
||||
from lib.server.zeroconf_server import ZeroconfServer
|
||||
|
||||
|
||||
@@ -53,8 +54,8 @@ class ZordonClient:
|
||||
self.job_cache = []
|
||||
|
||||
# Setup zeroconf
|
||||
self.zeroconf = ZeroconfServer("_zordon._tcp.local.", self.server_proxy.hostname, self.server_proxy.port)
|
||||
self.zeroconf.start()
|
||||
self.zeroconf = ZeroconfServer("_zordon._tcp.local.", socket.gethostname(), 8080)
|
||||
self.zeroconf.start(listen_only=True)
|
||||
|
||||
# Setup photo preview
|
||||
photo_pad = tk.Frame(self.root, background="gray")
|
||||
|
||||
@@ -16,6 +16,7 @@ import yaml
|
||||
from flask import Flask, request, render_template, send_file, after_this_request, Response, redirect, url_for, abort
|
||||
from werkzeug.utils import secure_filename
|
||||
|
||||
from lib.server.zeroconf_server import ZeroconfServer
|
||||
from lib.render_queue import RenderQueue, JobNotFoundError
|
||||
from lib.render_workers.worker_factory import RenderWorkerFactory
|
||||
from lib.render_workers.base_worker import string_to_status, RenderStatus
|
||||
@@ -504,6 +505,9 @@ def start_server(background_thread=False):
|
||||
|
||||
logging.info(f"Starting Zordon Render Server - Hostname: '{RenderQueue.hostname}'")
|
||||
|
||||
zeroconf_server = ZeroconfServer("_zordon._tcp.local.", RenderQueue.hostname, RenderQueue.port)
|
||||
zeroconf_server.start()
|
||||
|
||||
if background_thread:
|
||||
server_thread = threading.Thread(
|
||||
target=lambda: server.run(host='0.0.0.0', port=RenderQueue.port, debug=False, use_reloader=False))
|
||||
|
||||
@@ -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,8 +15,10 @@ class ZeroconfServer:
|
||||
self.zeroconf = Zeroconf()
|
||||
self.service_info = None
|
||||
self.client_cache = {}
|
||||
self.properties = {}
|
||||
|
||||
def start(self):
|
||||
def start(self, listen_only=False):
|
||||
if not listen_only:
|
||||
self._register_service()
|
||||
self._browse_services()
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user