File size: 1,272 Bytes
07adf07 595094e 07adf07 595094e b8c72c0 07adf07 595094e b8c72c0 595094e b3a2577 b8c72c0 cf34346 b3a2577 cf34346 595094e b8c72c0 07adf07 595094e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# server.py
# 1️⃣ Patch first, before any stdlib or 3rd-party imports
import eventlet
eventlet.monkey_patch()
# 2️⃣ Now import everything else
from flask import Flask, request, send_from_directory
from flask_cors import CORS
from flask_socketio import SocketIO
# 3️⃣ Create app as before
app = Flask(__name__, static_folder="static", static_url_path="/static")
CORS(app)
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)
socketio.emit("motor_states", motor_states)
if __name__ == "__main__":
# 4️⃣ Run under eventlet on 7860 so HF Spaces provides the TLS cert
socketio.run(app, host="0.0.0.0", port=7860)
|