# websocket_server/main.py from flask import Flask from flask_socketio import SocketIO import threading import logging from websocket_server.config import setup_logging from websocket_server.worker_manager import worker_dispatch_flag_check, all_worker_watchdog from websocket_server.events import base # Setup logging logger = setup_logging() logger.info("Starting WebSocket server...") # Flask app and SocketIO setup app = Flask(__name__) base.socketio = SocketIO( app, cors_allowed_origins="*", ping_timeout=5, ping_interval=30 ) # Import all socket event handlers from websocket_server.events import messages, ack, docker, libvirt, logs, terminal, vnc messages.register_socketio_handlers(base.socketio) ack.register_socketio_handlers(base.socketio) docker.register_socketio_handlers(base.socketio) libvirt.register_socketio_handlers(base.socketio) logs.register_socketio_handlers(base.socketio) terminal.register_socketio_handlers(base.socketio) vnc.register_socketio_handlers(base.socketio) # Attach routes if needed from websocket_server import task_api task_api.register_routes(app) def start_background_threads(): logger.info("Starting background worker threads...") dispatch_thread = threading.Thread(target=worker_dispatch_flag_check, daemon=True) dispatch_thread.start() watchdog_thread = threading.Thread(target=all_worker_watchdog, daemon=True) watchdog_thread.start() if __name__ == "__main__": start_background_threads() # TODO - Remove allow_unsafe_werkzeug base.socketio.run(app, host="0.0.0.0", port=6001,allow_unsafe_werkzeug=True,debug=True )