From 550eb1bea607ff170d1223cd9e83ccb5803cd683 Mon Sep 17 00:00:00 2001 From: pony <1356137040@qq.com> Date: Thu, 13 Nov 2025 16:14:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=94=AF=E6=8C=81=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E7=AB=AF=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start_server.py | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/start_server.py b/start_server.py index 47ccc8f..f7a252b 100644 --- a/start_server.py +++ b/start_server.py @@ -13,6 +13,7 @@ import threading import django import importlib.util import re +import argparse from pathlib import Path from django.db import transaction from django.db import models @@ -1004,11 +1005,13 @@ class SimpleFileWatcher: class ServerManager: """服务器管理器""" - def __init__(self): + def __init__(self, host: str = '0.0.0.0', port: int = 8000): self.process = None self.watcher = None self.base_dir = Path(__file__).resolve().parent self.running = True + self.host = host + self.port = int(port) def start_server(self): """启动服务器进程""" @@ -1017,8 +1020,8 @@ class ServerManager: cmd = [ sys.executable, '-m', 'daphne', - '-b', '0.0.0.0', - '-p', '8000', + '-b', self.host, + '-p', str(self.port), 'hertz_server_django.asgi:application' ] @@ -1214,9 +1217,18 @@ def main(): # 步骤4: 启动服务器 print("\n📋 步骤4: 启动服务器...") print("🚀 启动Hertz Server Django (支持HTTP + WebSocket + 热重启)") + parser = argparse.ArgumentParser(add_help=False) + parser.add_argument('--port', type=int) + args, _ = parser.parse_known_args() + env_port = os.environ.get('PORT') or os.environ.get('DJANGO_PORT') + try: + env_port_int = int(env_port) if env_port is not None else None + except ValueError: + env_port_int = None + port = args.port or env_port_int or 8000 print("📡 使用Daphne ASGI服务器") - print("🌐 HTTP服务: http://127.0.0.1:8000/") - print("🔌 WebSocket服务: ws://127.0.0.1:8000/ws/") + print(f"🌐 HTTP服务: http://127.0.0.1:{port}/") + print(f"🔌 WebSocket服务: ws://127.0.0.1:{port}/ws/") print("🔥 自动热重启: 已启用") print("\n按 Ctrl+C 停止服务器\n") @@ -1236,7 +1248,7 @@ def main(): return # 创建服务器管理器 - server_manager = ServerManager() + server_manager = ServerManager(port=port) try: # 启动服务器