diff --git a/server/dbproxy/app.cc b/server/dbproxy/app.cc index c35645b..09fcb98 100644 --- a/server/dbproxy/app.cc +++ b/server/dbproxy/app.cc @@ -17,6 +17,7 @@ #include "handlermgr.h" #include "ss_msgid.pb.h" #include "ss_proto.pb.h" +#include "dbpool.h" struct MsgNode { @@ -83,6 +84,7 @@ void App::Init(int argc, char* argv[]) HandlerMgr::Instance()->Init(); a8::Timer::Instance()->Init(); JsonDataMgr::Instance()->Init(); + DBPool::Instance()->Init(); GSListener::Instance()->Init(); uuid.SetMachineId(instance_id); @@ -107,6 +109,7 @@ void App::UnInit() return; } GSListener::Instance()->UnInit(); + DBPool::Instance()->UnInit(); JsonDataMgr::Instance()->UnInit(); a8::Timer::Instance()->UnInit(); HandlerMgr::Instance()->UnInit(); @@ -279,6 +282,13 @@ void App::DispatchMsg() hdr.buflen = pdelnode->buflen; hdr.offset = 0; hdr.ip_saddr = pdelnode->ip_saddr; + switch (pdelnode->sockfrom) { + case SF_GameServer: + { + ProcessGSMsg(hdr); + } + break; + } if (pdelnode->buf) { free(pdelnode->buf); } @@ -294,17 +304,21 @@ void App::DispatchMsg() } } -void App::ProcessClientMsg(MsgHdr& hdr) +void App::ProcessGSMsg(MsgHdr& hdr) { - if (hdr.msgid < 100) { - return; + NetMsgHandler* handler = GetNetMsgHandler(&HandlerMgr::Instance()->gsmsghandler, + hdr.msgid); + if (handler) { + switch (handler->handlerid) { + case HID_DBPool: + { + ProcessNetMsg(handler, DBPool::Instance(), hdr); + } + break; + } } } -void App::ProcessTargetServerMsg(MsgHdr& hdr) -{ -} - void App::ProcessIMMsg() { if (!im_work_node_ && im_top_node_) { diff --git a/server/dbproxy/app.h b/server/dbproxy/app.h index 7201637..99ed30c 100644 --- a/server/dbproxy/app.h +++ b/server/dbproxy/app.h @@ -41,8 +41,7 @@ private: void DispatchMsg(); void ProcessIMMsg(); - void ProcessClientMsg(MsgHdr& hdr); - void ProcessTargetServerMsg(MsgHdr& hdr); + void ProcessGSMsg(MsgHdr& hdr); void InitLog(); void UnInitLog(); diff --git a/server/dbproxy/dbpool.h b/server/dbproxy/dbpool.h index 17ec458..b971e9e 100644 --- a/server/dbproxy/dbpool.h +++ b/server/dbproxy/dbpool.h @@ -7,8 +7,12 @@ namespace ss } class DBThread; -class DBPool +class DBPool : public a8::Singleton { + private: + DBPool() {}; + friend class a8::Singleton; + public: enum { HID = HID_DBPool }; @@ -26,4 +30,3 @@ class DBPool DBThread* db_single_thread_ = nullptr; std::vector db_thread_pool_; }; - diff --git a/server/dbproxy/handlermgr.cc b/server/dbproxy/handlermgr.cc index bd1dd6d..9d5a98c 100644 --- a/server/dbproxy/handlermgr.cc +++ b/server/dbproxy/handlermgr.cc @@ -3,8 +3,9 @@ #include #include "handlermgr.h" - #include "GSListener.h" +#include "dbpool.h" +#include "ss_proto.pb.h" void _GMAppEcho(a8::HTTPRequest& request, a8::MutableXObject* xobj) { @@ -25,6 +26,8 @@ void HandlerMgr::UnInit() void HandlerMgr::RegisterNetMsgHandlers() { + RegisterNetMsgHandler(&gsmsghandler, &DBPool::_SS_Ping); + RegisterNetMsgHandler(&gsmsghandler, &DBPool::_SS_GSM_ExecAsyncSql); } void HandlerMgr::ProcGMMsg(int sockhandle, const std::string& url, const std::string& querystr) diff --git a/server/dbproxy/handlermgr.h b/server/dbproxy/handlermgr.h index 279bbfe..c615723 100644 --- a/server/dbproxy/handlermgr.h +++ b/server/dbproxy/handlermgr.h @@ -21,8 +21,6 @@ class HandlerMgr : public a8::Singleton void Init(); void UnInit(); - NetMsgHandlerObject gcmsghandler; - NetMsgHandlerObject rsmsghandler; NetMsgHandlerObject gsmsghandler; void ProcGMMsg(int sockhandle, const std::string& url, const std::string& quyerstr); diff --git a/server/tools/protobuild/ss_msgid.proto b/server/tools/protobuild/ss_msgid.proto index 238e4c7..03d529b 100644 --- a/server/tools/protobuild/ss_msgid.proto +++ b/server/tools/protobuild/ss_msgid.proto @@ -3,8 +3,8 @@ package ss; //消息id定义 enum SSMessageId_e { - _SS_Ping = 150; - _SS_Pong = 151; + _SS_Ping = 100; + _SS_Pong = 101; _SS_GSM_ExecAsyncSql = 152; _SS_DPM_ExecAsyncSql = 153; }