Coverage for start_websocket_server.py: 0.00%
46 statements
« prev ^ index » next coverage.py v7.12.0, created at 2025-11-25 15:37 +0330
« prev ^ index » next coverage.py v7.12.0, created at 2025-11-25 15:37 +0330
1#!/usr/bin/env python3
2"""
3🚀 راهانداز سرور برای تست WebSocket
4Server launcher for WebSocket testing
5"""
7import os
8import sys
9import subprocess
10from pathlib import Path
12def check_port_available(port: int) -> bool:
13 """بررسی اینکه پورت در دسترس است یا نه"""
14 import socket
15 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
16 try:
17 s.bind(('localhost', port))
18 return True
19 except OSError:
20 return False
22def main():
23 """راهاندازی سرور"""
24 port = 7860
26 print("=" * 60)
27 print("🚀 راهاندازی سرور Crypto Intelligence Hub")
28 print("=" * 60)
30 # بررسی پورت
31 if not check_port_available(port):
32 print(f"❌ پورت {port} در حال استفاده است!")
33 print(f" لطفاً برنامه دیگری که از این پورت استفاده میکند را ببندید.")
34 sys.exit(1)
36 print(f"✅ پورت {port} در دسترس است")
38 # بررسی فایل اصلی
39 server_file = Path("hf_space_main.py")
40 if not server_file.exists():
41 print(f"❌ فایل {server_file} یافت نشد!")
42 print(" لطفاً مطمئن شوید که در دایرکتوری اصلی پروژه هستید.")
43 sys.exit(1)
45 print(f"✅ فایل سرور یافت شد: {server_file}")
47 # تنظیم متغیرهای محیطی
48 os.environ["PORT"] = str(port)
49 os.environ["HOST"] = "0.0.0.0"
51 print("\n" + "=" * 60)
52 print("📡 در حال راهاندازی سرور...")
53 print("=" * 60)
54 print(f"🌐 آدرس: http://localhost:{port}")
55 print(f"📖 API Docs: http://localhost:{port}/docs")
56 print(f"🔌 WebSocket: ws://localhost:{port}/ws")
57 print(f"❤️ Health Check: http://localhost:{port}/api/health")
58 print("\n⏸️ برای توقف سرور Ctrl+C را فشار دهید\n")
60 try:
61 # راهاندازی سرور با uvicorn
62 subprocess.run([
63 sys.executable, "-m", "uvicorn",
64 "hf_space_main:app",
65 "--host", "0.0.0.0",
66 "--port", str(port),
67 "--log-level", "info",
68 "--reload" # برای development - در production حذف کنید
69 ])
70 except KeyboardInterrupt:
71 print("\n\n🛑 سرور متوقف شد")
72 sys.exit(0)
73 except Exception as e:
74 print(f"\n❌ خطا در راهاندازی سرور: {e}")
75 sys.exit(1)
77if __name__ == "__main__":
78 main()