修复当地址带有端口号时ws地址拼接错误
This commit is contained in:
@@ -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}")
|
||||
|
||||
Reference in New Issue
Block a user