diff --git a/PyServer/main.py b/PyServer/main.py index 6fe764d..0e6f453 100644 --- a/PyServer/main.py +++ b/PyServer/main.py @@ -11,6 +11,7 @@ from http.server import HTTPServer, BaseHTTPRequestHandler import websockets from urllib.parse import parse_qs, urlparse import mimetypes +import re # 设置日志 logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') @@ -35,9 +36,12 @@ class Room: self.last_activity = datetime.now() self.clients: Set[str] = set() + # 从host中移除端口号 + host_without_port = re.sub(r':\d+$', '', server_host) + # 使用80端口 - self.frontend_url = f"http://{server_host}/?id={room_id}&ws=ws://{server_host}" - self.ws_url = f"ws://{server_host}:{ws_port}" + self.ws_url = f"ws://{host_without_port}:{ws_port}" + self.frontend_url = f"http://{server_host}/?id={room_id}&ws={self.ws_url}" def add_client(self, client_id: str): self.clients.add(client_id) @@ -143,17 +147,18 @@ class HTTPHandler(BaseHTTPRequestHandler): # 生成唯一房间ID room_id = str(uuid.uuid4())[:8] - # 获取服务器主机地址 + # 获取服务器主机地址并移除端口号 host = self.headers.get('Host', 'localhost') + host_without_port = re.sub(r':\d+$', '', host) # 创建房间 - room = Room(room_id, host) + room = Room(room_id, host_without_port) rooms[room_id] = room logger.info(f"通过根路径创建新房间: {room_id}") # 重定向到带房间ID和WebSocket URL的URL - redirect_url = f'/?id={room_id}&ws=ws://{host}:{ws_port}' + redirect_url = f'/?id={room_id}&ws=ws://{host_without_port}:{ws_port}' self.send_response(302) self.send_header('Location', redirect_url) self.end_headers() @@ -247,11 +252,12 @@ class HTTPHandler(BaseHTTPRequestHandler): # 生成唯一房间ID room_id = str(uuid.uuid4())[:8] - # 获取服务器主机地址 + # 获取服务器主机地址并移除端口号 host = self.headers.get('Host', 'localhost') + host_without_port = re.sub(r':\d+$', '', host) # 创建房间 - room = Room(room_id, host) + room = Room(room_id, host_without_port) rooms[room_id] = room logger.info(f"创建新房间: {room_id}")