From 1ab047b5fdd933c38ba0519ec2e83a44512ea8d7 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期四, 26 三月 2026 17:46:11 +0800
Subject: [PATCH] webgl代码合并 1

---
 Main/Core/NetworkPackage/Socket/ClientSocket.cs |   29 +++++++++++++++++++++++------
 1 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/Main/Core/NetworkPackage/Socket/ClientSocket.cs b/Main/Core/NetworkPackage/Socket/ClientSocket.cs
index 8c64874..12a16c2 100644
--- a/Main/Core/NetworkPackage/Socket/ClientSocket.cs
+++ b/Main/Core/NetworkPackage/Socket/ClientSocket.cs
@@ -60,6 +60,10 @@
     Action<bool> onConnected = null;
     Queue<byte[]> sendQueue = new Queue<byte[]>();
     static byte[] vCmdBytes = new byte[2];
+#if UNITY_WEBGL
+    string webSocketUrl;
+    bool webSocketOpened;
+#endif
 
     public ClientSocket(ServerType type)
     {
@@ -437,13 +441,15 @@
         ip = _ip;
         port = _port;
         onConnected = _onConnected;
-        
-        string url = $"ws://{_ip}:{_port}";
-        Debug.Log($"[ClientSocket-WebSocket] 寮�濮嬭繛鎺�: {url}");
+
+        var scheme = Application.absoluteURL.StartsWith("https://", StringComparison.OrdinalIgnoreCase) ? "wss" : "ws";
+        webSocketUrl = $"{scheme}://{_ip}:{_port}";
+        webSocketOpened = false;
+        Debug.Log($"[ClientSocket-WebSocket] 寮�濮嬭繛鎺�: {webSocketUrl}, pageUrl={Application.absoluteURL}");
         
         try
         {
-            webSocket = new WebSocket(url);
+            webSocket = new WebSocket(webSocketUrl);
             
             // 娉ㄥ唽WebSocket鍥炶皟
             webSocket.OnOpen += OnWebSocketOpen;
@@ -466,7 +472,8 @@
     
     private void OnWebSocketOpen()
     {
-        Debug.Log("[ClientSocket-WebSocket] 杩炴帴鎴愬姛");
+        webSocketOpened = true;
+        Debug.Log($"[ClientSocket-WebSocket] 杩炴帴鎴愬姛: {webSocketUrl}");
         m_LastPackageTime = DateTime.Now;
         
         if (onConnected != null)
@@ -545,11 +552,21 @@
     private void OnWebSocketError(string error)
     {
         Debug.LogError($"[ClientSocket-WebSocket] 閿欒: {error}");
+        if (!webSocketOpened && onConnected != null)
+        {
+            onConnected(false);
+            onConnected = null;
+        }
     }
     
     private void OnWebSocketClose(WebSocketCloseCode code)
     {
-        Debug.Log($"[ClientSocket-WebSocket] 杩炴帴鍏抽棴: {code}");
+        Debug.LogError($"[ClientSocket-WebSocket] 杩炴帴鍏抽棴: code={code}, url={webSocketUrl}, opened={webSocketOpened}");
+        if (!webSocketOpened && onConnected != null)
+        {
+            onConnected(false);
+            onConnected = null;
+        }
         OnDisconnected?.Invoke();
     }
     

--
Gitblit v1.8.0