using UnityEngine; using WXGame.Network; using Cysharp.Threading.Tasks; using System; using System.Collections.Generic; using MotionFramework; namespace DefaultNamespace { /// /// 用户数据网络管理类 /// public class UserDataNetworkManager : ModuleSingleton, IModule { private UserInfoResponse _myInfo; public UserInfoResponse MyInfo => _myInfo; private MqttConfigRoot _mqttConfig; public MqttConfigRoot MqttConfig=> _mqttConfig; /// /// 获取我的好友(异步方式) /// /// UniTask public async UniTask GetMyFriend() { Debug.Log("开始异步获取好友列表..."); try { // 构建POST请求参数(urlencoded格式) string postData = $"page={1}"; Debug.Log(postData); // 使用异步方式发送POST请求 var result = await WebRequestManager.Instance.PostRequestAsync( url: Apis.GetMyFriend(), signParams: new Dictionary() { { "page", "1" }, } ); Debug.Log($"好友列表请求成功!状态码: {result.ResponseCode}"); Debug.Log($"响应内容: {result.ResponseText}"); FriendResponse friendResponse = JsonUtility.FromJson(result.ResponseText); return friendResponse; } catch (Exception ex) { Debug.LogError($"获取好友列表失败: {ex.Message}"); throw; } } /// /// 获取我的用户信息(异步方式) /// /// UniTask public async UniTask GetMyInfo() { Debug.Log("开始异步获取用户信息..."); try { // 使用异步方式发送POST请求获取用户信息 var result = await WebRequestManager.Instance.PostRequestAsync( url: Apis.GetMyInfo() ); Debug.Log($"用户信息请求成功!状态码: {result.ResponseCode}"); Debug.Log($"响应内容: {result.ResponseText}"); // 解析JSON响应数据 UserInfoResponse userInfoResponse = JsonUtility.FromJson(result.ResponseText); _myInfo = userInfoResponse; // 验证响应数据 if (userInfoResponse == null) { throw new Exception("用户信息响应数据为空"); } if (userInfoResponse.code != 0) { throw new Exception($"获取用户信息失败: {userInfoResponse.msg}"); } if (userInfoResponse.data == null) { throw new Exception("用户信息数据为空"); } Debug.Log($"用户信息解析成功 - 用户ID: {userInfoResponse.data.user_id}, 昵称: {userInfoResponse.data.user_username}"); return userInfoResponse; } catch (Exception ex) { Debug.LogError($"获取用户信息失败: {ex.Message}"); throw; } } /// /// 获取mqtt连接配置 /// /// public async UniTask GetMqttConfig() { Debug.Log("开始异步获取用户信息..."); try { // 使用异步方式发送POST请求获取用户信息 var result = await WebRequestManager.Instance.PostRequestAsync( url: Apis.GetMqttConfig() ); Debug.Log($"mqtt连接配置请求成功!状态码: {result.ResponseCode}"); Debug.Log($"响应内容: {result.ResponseText}"); // 解析JSON响应数据 MqttConfigRoot mqttConfigRoot = JsonUtility.FromJson(result.ResponseText); _mqttConfig = mqttConfigRoot; // 验证响应数据 if (mqttConfigRoot == null) { throw new Exception("mqtt连接配置数据为空"); } if (mqttConfigRoot.code != 0) { throw new Exception($"mqtt连接配置失败: {mqttConfigRoot.msg}"); } if (mqttConfigRoot.data == null) { throw new Exception("用户信息数据为空"); } Debug.Log($"用户信息解析成功 - 用户ID: {mqttConfigRoot.data.host}, 昵称: {mqttConfigRoot.data.port}"); return mqttConfigRoot; } catch (Exception ex) { Debug.LogError($"获取用户信息失败: {ex.Message}"); throw; } } /// /// 获取历史数据 /// /// public async UniTask GetHistroy() { Debug.Log("开始异步获取历史消息..."); try { // 构建POST请求参数(urlencoded格式) string postData = $"page={1}"; Debug.Log(postData); // 使用异步方式发送POST请求 var result = await WebRequestManager.Instance.PostRequestAsync( url: Apis.GetHistoty(), signParams: new Dictionary() { { "page", "1" }, } ); Debug.Log($"响应内容: {result.ResponseText}"); HistoryRoot friendResponse = JsonUtility.FromJson(result.ResponseText); return friendResponse; } catch (Exception ex) { Debug.LogError($"获取历史消息: {ex.Message}"); throw; } } /// /// 获取历史数据 /// /// /// public async UniTask GetHistroy(string other_uid) { Debug.Log("开始异步获取历史消息..."); try { // 使用异步方式发送POST请求 var result = await WebRequestManager.Instance.PostRequestAsync( url: Apis.GetHistoty(), signParams: new Dictionary() { { "page", "1" }, { "other_uid", other_uid }, } ); Debug.Log($"响应内容: {result.ResponseText}"); HistoryRoot friendResponse = JsonUtility.FromJson(result.ResponseText); return friendResponse; } catch (Exception ex) { Debug.LogError($"获取历史消息: {ex.Message}"); throw; } } /// /// 发送消息 /// /// /// public async UniTask SendMessage(string message) { Debug.Log("发送消息..."); try { // 使用异步方式发送POST请求 var result = await WebRequestManager.Instance.PostRequestAsync( url: Apis.GetSendMessage(), signParams: new Dictionary() { { "message", message }, } ); Debug.Log($"响应内容: {result.ResponseText}"); SendMessageRoot sendMessageRoot = JsonUtility.FromJson(result.ResponseText); return sendMessageRoot; } catch (Exception ex) { Debug.LogError($"获取历史消息: {ex.Message}"); throw; } } /// /// 发送消息(私人聊天) /// /// /// /// public async UniTask SendMessage(string message, string other_uid) { Debug.Log("发送消息..."); try { // 使用异步方式发送POST请求 var result = await WebRequestManager.Instance.PostRequestAsync( url: Apis.GetSendMessage(), signParams: new Dictionary() { { "message", message }, { "other_uid", other_uid }, } ); Debug.Log($"响应内容: {result.ResponseText}"); SendMessageRoot sendMessageRoot = JsonUtility.FromJson(result.ResponseText); return sendMessageRoot; } catch (Exception ex) { Debug.LogError($"获取历史消息: {ex.Message}"); throw; } } public void OnCreate(object createParam) { } public void OnUpdate() { } public void OnDestroy() { } public void OnGUI() { } } }