Files
3cloud-backend/websocket_server/main.py
T
2025-07-26 00:54:28 +09:30

55 lines
1.6 KiB
Python

# 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 )