import eventlet from flask import Flask, request, send_from_directory from flask_cors import CORS from flask_socketio import SocketIO # 1) static under /static app = Flask(__name__, static_folder="static", static_url_path="/static") CORS(app) # 2) Socket.IO with wildcard CORS socketio = SocketIO(app, cors_allowed_origins="*") motor_states = {f"motor_{i}": 0.0 for i in range(6)} @app.route("/") def index(): return send_from_directory("static", "index.html") @app.route("/sinus") def sinus(): return send_from_directory("static", "sinus.html") @app.route("/motor_control", methods=["POST"]) def http_control(): data = request.json or {} motor_states.update(data) print("HTTP POST:", data) return {"status": "ok", "motor_states": motor_states} @socketio.on("connect") def on_connect(): print("Client connected") @socketio.on("motor_control") def on_ws_control(data): motor_states.update(data) print("WS:", data) # broadcast new states back if you like socketio.emit("motor_states", motor_states) if __name__ == "__main__": # 3) run under eventlet on port 7860 (HF Spaces HTTPS) eventlet.monkey_patch() socketio.run(app, host="0.0.0.0", port=7860)