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()
{
}
}
}