This commit is contained in:
azw 2023-09-13 14:16:55 +00:00
parent c43ded4696
commit 3b30957e37
5 changed files with 43 additions and 48 deletions

View File

@ -84,17 +84,17 @@ void GSMgr::_SS_Ping(f8::MsgHdr& hdr, const ss::SS_Ping& msg)
GGListener::Instance()->SendMsg(hdr.socket_handle, pongmsg);
}
void GSMgr::___GSReport(f8::JsonHttpRequest* request)
void GSMgr::___GSReport(std::shared_ptr<f8::JsonHttpRequest> request)
{
std::string ip = request->params->Get("ip");
int port = request->params->Get("port");
int alive_count = request->params->Get("alive_count");
int online_num = request->params->Get("online_num");
int room_num = request->params->Get("room_num");
int instance_id = request->params->Get("instance_id");
int node_id = request->params->Get("node_id");
int version = request->params->Get("version");
bool servicing = request->params->Get("servicing");
std::string ip = request->GetParams()->Get("ip");
int port = request->GetParams()->Get("port");
int alive_count = request->GetParams()->Get("alive_count");
int online_num = request->GetParams()->Get("online_num");
int room_num = request->GetParams()->Get("room_num");
int instance_id = request->GetParams()->Get("instance_id");
int node_id = request->GetParams()->Get("node_id");
int version = request->GetParams()->Get("version");
bool servicing = request->GetParams()->Get("servicing");
std::string key = ip + ":" + a8::XValue(port).GetString();
auto itr = node_key_hash_.find(key);
@ -135,11 +135,11 @@ void GSMgr::___GSReport(f8::JsonHttpRequest* request)
RearrangeNode();
}
request->resp_xobj->SetVal("errcode", 0);
request->resp_xobj->SetVal("errmsg", "");
request->GetResp()->SetVal("errcode", 0);
request->GetResp()->SetVal("errmsg", "");
}
void GSMgr::___GSList(f8::JsonHttpRequest* request)
void GSMgr::___GSList(std::shared_ptr<f8::JsonHttpRequest> request)
{
{
auto node_list = a8::MutableXObject::CreateArray();
@ -158,9 +158,9 @@ void GSMgr::___GSList(f8::JsonHttpRequest* request)
node_list->Push(*node);
}
request->resp_xobj->SetVal("errcode", 0);
request->resp_xobj->SetVal("errmsg", "");
request->resp_xobj->SetVal("node_list", *node_list);
request->GetResp()->SetVal("errcode", 0);
request->GetResp()->SetVal("errmsg", "");
request->GetResp()->SetVal("node_list", *node_list);
}
{
auto node_list = a8::MutableXObject::CreateArray();
@ -180,9 +180,9 @@ void GSMgr::___GSList(f8::JsonHttpRequest* request)
}
}
request->resp_xobj->SetVal("errcode", 0);
request->resp_xobj->SetVal("errmsg", "");
request->resp_xobj->SetVal("sorted_node_list", *node_list);
request->GetResp()->SetVal("errcode", 0);
request->GetResp()->SetVal("errmsg", "");
request->GetResp()->SetVal("sorted_node_list", *node_list);
}
}

View File

@ -26,8 +26,8 @@ class GSMgr : public a8::Singleton<GSMgr>
void _SS_WSP_RequestTargetServer(f8::MsgHdr& hdr, const ss::SS_WSP_RequestTargetServer& msg);
void _SS_Ping(f8::MsgHdr& hdr, const ss::SS_Ping& msg);
void ___GSReport(f8::JsonHttpRequest* request);
void ___GSList(f8::JsonHttpRequest* request);
void ___GSReport(std::shared_ptr<f8::JsonHttpRequest> request);
void ___GSList(std::shared_ptr<f8::JsonHttpRequest> request);
private:
std::shared_ptr<GSNode> GetNodeByTeamId(const std::string& team_id);

View File

@ -11,13 +11,13 @@
#include "ss_proto.pb.h"
static void _GMOpsSelfChecking(f8::JsonHttpRequest* request)
static void _GMOpsSelfChecking(std::shared_ptr<f8::JsonHttpRequest> request)
{
request->resp_xobj->SetVal("errcode", 0);
request->resp_xobj->SetVal("errmsg", "");
request->resp_xobj->SetVal("healthy", 1);
request->resp_xobj->SetVal("max_rundelay", App::Instance()->perf.max_run_delay_time);
request->resp_xobj->SetVal("max_timer_idle", App::Instance()->perf.max_timer_idle);
request->GetResp()->SetVal("errcode", 0);
request->GetResp()->SetVal("errmsg", "");
request->GetResp()->SetVal("healthy", 1);
request->GetResp()->SetVal("max_rundelay", App::Instance()->perf.max_run_delay_time);
request->GetResp()->SetVal("max_timer_idle", App::Instance()->perf.max_timer_idle);
}
void HandlerMgr::Init()
@ -25,12 +25,12 @@ void HandlerMgr::Init()
RegisterNetMsgHandlers();
RegisterGMMsgHandler("Ops@selfChecking", _GMOpsSelfChecking);
RegisterGMMsgHandler("GS@report",
[] (f8::JsonHttpRequest* request)
[] (std::shared_ptr<f8::JsonHttpRequest> request)
{
GSMgr::Instance()->___GSReport(request);
});
RegisterGMMsgHandler("GS@list",
[] (f8::JsonHttpRequest* request)
[] (std::shared_ptr<f8::JsonHttpRequest> request)
{
GSMgr::Instance()->___GSList(request);
});
@ -60,29 +60,24 @@ void HandlerMgr::ProcGMMsg(unsigned long saddr, int sockhandle,
std::string msgname = a8::Get(request, "c").GetString() + "@" + a8::Get(request, "a").GetString();
auto itr = gmhandlers_.find(msgname);
if (itr != gmhandlers_.end()) {
f8::JsonHttpRequest* request = new f8::JsonHttpRequest;
request->saddr = saddr;
request->socket_handle = sockhandle;
request->query_str = querystr;
request->params->ReadFromUrlQueryString(querystr);
request->resp_xobj->SetVal("errcode", 0);
request->resp_xobj->SetVal("errmsg", "");
auto request = std::make_shared<f8::JsonHttpRequest>
(
saddr,
url,
querystr,
[sockhandle] (const a8::Args& args)
{
std::string data = args.Get<std::string>(0);
GGListener::Instance()->SendText(sockhandle, a8::HttpResponse(data));
});
itr->second(request);
if (!request->pending){
std::string response;
request->resp_xobj->ToJsonStr(response);
GGListener::Instance()->SendText(sockhandle, a8::HttpResponse(response));
delete request;
}
} else {
GGListener::Instance()->SendText(sockhandle, a8::HttpResponse("{}"));
}
}
void HandlerMgr::RegisterGMMsgHandler(const std::string& msgname,
void (*handler)(f8::JsonHttpRequest*))
void (*handler)(std::shared_ptr<f8::JsonHttpRequest>))
{
gmhandlers_[msgname] = handler;
}

View File

@ -29,7 +29,7 @@ class HandlerMgr : public a8::Singleton<HandlerMgr>
private:
void RegisterNetMsgHandlers();
void RegisterGMMsgHandler(const std::string& msgname,
void (*)(f8::JsonHttpRequest*));
void (*)(std::shared_ptr<f8::JsonHttpRequest>));
std::map<std::string, void (*)(f8::JsonHttpRequest*)> gmhandlers_;
std::map<std::string, void (*)(std::shared_ptr<f8::JsonHttpRequest>)> gmhandlers_;
};

2
third_party/f8 vendored

@ -1 +1 @@
Subproject commit ae2a2bcddbacf26d0ba2f1be7c95ee9e20ce3023
Subproject commit 5954fb5fcbf28bdeb16490ced77999daf2c0d73d