From 00c69dfcd2956dc2bc1d933126b601da6d4781d0 Mon Sep 17 00:00:00 2001 From: TommcyOWO Date: Sun, 16 Mar 2025 15:05:20 +0800 Subject: [PATCH] update > ewe --- .gitignore | 1 - __pycache__/main.cpython-313.pyc | Bin 6528 -> 0 bytes .../animated-chart.js => animated-chart.js | 0 frontend/app-js.js => app-js.js | 0 ...-trend-action.js => forced-trend-action.js | 0 frontend/index.html => index.html | 0 main.py | 121 ------------------ ...le-trend-alert.js => simple-trend-alert.js | 0 frontend/stockdata-js.js => stockdata-js.js | 0 frontend/styles-css.css => styles-css.css | 0 10 files changed, 122 deletions(-) delete mode 100644 .gitignore delete mode 100644 __pycache__/main.cpython-313.pyc rename frontend/animated-chart.js => animated-chart.js (100%) rename frontend/app-js.js => app-js.js (100%) rename frontend/forced-trend-action.js => forced-trend-action.js (100%) rename frontend/index.html => index.html (100%) delete mode 100644 main.py rename frontend/simple-trend-alert.js => simple-trend-alert.js (100%) rename frontend/stockdata-js.js => stockdata-js.js (100%) rename frontend/styles-css.css => styles-css.css (100%) diff --git a/.gitignore b/.gitignore deleted file mode 100644 index d4c95d8..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -**__pycahe__/* diff --git a/__pycache__/main.cpython-313.pyc b/__pycache__/main.cpython-313.pyc deleted file mode 100644 index 0bb536f1396b641a77dfd9d5ca80e63259e9dc85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6528 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 MAX_DATA_POINTS: - recent_prices.pop(0) - - # 將數據放入隊列 - await price_queue.put(json.dumps(recent_prices)) - await asyncio.sleep(1) # 控制更新頻率 - - except Exception as e: - print(f"連接錯誤: {e}") - print("3 秒後重試...") - await asyncio.sleep(3) - -# WebSocket 端點 -@app.websocket("/ws/btc-price") -async def websocket_endpoint(websocket: WebSocket): - await manager.connect(websocket) - try: - if recent_prices: - await websocket.send_text(json.dumps(recent_prices)) - - while True: - await websocket.receive_text() - except WebSocketDisconnect: - manager.disconnect(websocket) - -# 定期廣播數據 -async def broadcast_task(): - while True: - data = await price_queue.get() - await manager.broadcast(data) - -# 啟動時開始背景任務 -@app.on_event("startup") -def startup_event(): - executor = ThreadPoolExecutor(max_workers=1) - executor.submit(binance_ws_worker) - asyncio.create_task(broadcast_task()) - -# 主函數 -if __name__ == "__main__": - uvicorn.run("main:app", host="0.0.0.0", port=8000) \ No newline at end of file diff --git a/frontend/simple-trend-alert.js b/simple-trend-alert.js similarity index 100% rename from frontend/simple-trend-alert.js rename to simple-trend-alert.js diff --git a/frontend/stockdata-js.js b/stockdata-js.js similarity index 100% rename from frontend/stockdata-js.js rename to stockdata-js.js diff --git a/frontend/styles-css.css b/styles-css.css similarity index 100% rename from frontend/styles-css.css rename to styles-css.css