add http and websocket

This commit is contained in:
xyz
2025-06-10 20:17:39 +08:00
parent 030b5d6101
commit 68cd53a80c
23 changed files with 650 additions and 171 deletions

View File

@ -1,8 +1,12 @@
#pragma once
#pragma once
#include <QWidget>
#include <qstandardpaths.h>
#include <QDir>
#include <QJsonObject>
#include "data.h"
#include "../network/netclient.h"
namespace model
{
@ -13,12 +17,13 @@ namespace model
public:
static DataCenter* getInstance();
~DataCenter();
/// <summary>
/// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĺ͡<EFBFBD>
/// 计算两个整数的和。
/// </summary>
/// <param name="a"><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <param name="b"><EFBFBD>ڶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <returns><EFBFBD><EFBFBD><EFBFBD><EFBFBD> a + b <EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD></returns>
/// <param name="a">第一个加数</param>
/// <param name="b">第二个加数</param>
/// <returns>返回 a + b 的结果</returns>
/*int add(int a, int b) {
return a + b;
}*/
@ -28,29 +33,70 @@ namespace model
static DataCenter* instance;
//<EFBFBD>г<EFBFBD>DataCenter<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>֯<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//列出DataCenter中要组织管理的所有数据
//<EFBFBD><EFBFBD>ǰ<EFBFBD>ͻ<EFBFBD><EFBFBD>˵<EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ĵ<EFBFBD>¼<EFBFBD>Id
//当前客户端登录到服务器对应的登录会话Id
QString loginSessionId;
//<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD>Ϣ
//当前的用户信息
UserInfo* myself = nullptr;
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
QList<UserInfo>* firendList = nullptr;
//好友列表
QList<UserInfo>* friendList = nullptr;
//<EFBFBD><EFBFBD>б<EFBFBD>
//会话列表
QList<ChatSessionInfo>* chatSessionList = nullptr;
//<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>ǰѡ<EFBFBD>еĻỰ<EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD>
//记录当前选中的会话是哪个
QString currentChatSession = "";
//<EFBFBD><EFBFBD>¼ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Щ<EFBFBD><EFBFBD>Ա
//记录每个会话中,都有哪些成员
QHash<QString, QList<UserInfo>>* memberList = nullptr;//unordered_map
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
//待处理的好友申请列表
QList<UserInfo>* applyList = nullptr;
//每个会话最近消息的列表,key为chatSessionIdvalue为消息列表
QHash<QString, QList<Message>>* recentMessages = nullptr;
//存储每个会话,表示未读消息的数量
QHash<QString, int>* unreadMessageCount = nullptr;
// 用户的好友搜索结果
QList<UserInfo>* searchUserResult = nullptr;
//保存一个历史消息搜索结果
QList<Message>* searchMessageResult = nullptr;
//短信邮箱验证码的验证Id
QString currentVerifyCodeId = "";
//让dataCenter持有Netclient实例
network::NetClient netClient;
public:
/// <summary>
/// 初始化数据文件
/// </summary>
void initDataFile();
//存储数据到文件中
void saveDataFile();
//从数据文件中加载数据到内存
void loadDataFile();
//获取到当前的登录会话Id
const QString& getLoginSessionId() const{
return loginSessionId;
}
//验证网络的连通性
void ping() { netClient.ping(); }
//通过网络获取到用户的个人信息
void getMyselfAsync();
signals:
};
} //end namespace model