| | |
| | | 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) |
| | | { |
| | |
| | | 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; |
| | |
| | | |
| | | private void OnWebSocketOpen() |
| | | { |
| | | Debug.Log("[ClientSocket-WebSocket] 连接成功"); |
| | | webSocketOpened = true; |
| | | Debug.Log($"[ClientSocket-WebSocket] 连接成功: {webSocketUrl}"); |
| | | m_LastPackageTime = DateTime.Now; |
| | | |
| | | if (onConnected != null) |
| | |
| | | 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(); |
| | | } |
| | | |