Spaces:
Running
Running
| import logging | |
| import socket | |
| import threading | |
| import psutil | |
| import GPUtil | |
| from flask import Flask, render_template | |
| from flask_socketio import SocketIO, emit | |
| from peer_discovery import PEERS | |
| from peer_discovery import PORT | |
| logging.basicConfig(level=logging.INFO) | |
| app = Flask(__name__) | |
| socketio = SocketIO(app, cors_allowed_origins="*") | |
| node_id = socket.gethostname() | |
| connected_peers_data = {} | |
| # โโโโโโโโโโโโโโโ ุฌู ุน ุจูุงูุงุช ุงูุญู ู โโโโโโโโโโโโโโโ | |
| def get_system_status(): | |
| cpu = psutil.cpu_percent() | |
| ram = psutil.virtual_memory().percent | |
| gpu_load = 0 | |
| try: | |
| gpus = GPUtil.getGPUs() | |
| if gpus: | |
| gpu_load = gpus[0].load * 100 | |
| except: | |
| pass | |
| return {"cpu": cpu, "ram": ram, "gpu": gpu_load} | |
| # โโโโโโโโโโโโโโโ ุฅุฑุณุงู ุงูุชุญุฏูุซุงุช โโโโโโโโโโโโโโโ | |
| def broadcast_status(): | |
| while True: | |
| status = get_system_status() | |
| socketio.emit("status_update", {node_id: status}) # ุชู ุฅุฒุงูุฉ broadcast=True | |
| socketio.sleep(5) | |
| # โโโโโโโโโโโโโโโ ุตูุญุฉ ุงููุงุฌูุฉ โโโโโโโโโโโโโโโ | |
| def index(): | |
| return render_template("dashboard.html", peers=connected_peers_data) | |
| # โโโโโโโโโโโโโโโ ุงุณุชูุจุงู ุชุญุฏูุซุงุช ุงูุญุงูุฉ โโโโโโโโโโโโโโโ | |
| def handle_status_update(data): | |
| connected_peers_data.update(data) | |
| emit("update_peers", connected_peers_data, broadcast=True) # ูุฐุง ุตุญูุญ ูุฃูู ุฏุงุฎู ู ุนุงูุฌ ุญุฏุซ | |
| # โโโโโโโโโโโโโโโ ุฏุฑุฏุดุฉ โโโโโโโโโโโโโโโ | |
| def handle_message(data): | |
| emit("receive_message", data, broadcast=True) | |
| # โโโโโโโโโโโโโโโ ุชุดุบูู โโโโโโโโโโโโโโโ | |
| if __name__ == "__main__": | |
| threading.Thread(target=broadcast_status, daemon=True).start() # ุฃุถูุช daemon=True | |
| logging.info(f"๐ ุชุดุบูู Dashboard ุนูู {node_id}") | |
| socketio.run(app, host="0.0.0.0", port=7000) | |