This commit is contained in:
aozhiwei 2019-05-15 17:55:47 +08:00
parent ce5d5b7f6e
commit 0442ea3ece
7 changed files with 40 additions and 6 deletions

View File

@ -19,10 +19,8 @@ enum InnerMesssage_e
//网络处理对象 //网络处理对象
enum NetHandler_e enum NetHandler_e
{ {
HID_Player,
HID_PlayerMgr,
HID_RoomSvrMgr,
HID_GCListener, HID_GCListener,
HID_MasterSvrMgr,
}; };
enum PlayerState_e enum PlayerState_e

View File

@ -5,6 +5,9 @@
#include "handlermgr.h" #include "handlermgr.h"
#include "GCListener.h" #include "GCListener.h"
#include "mastersvrmgr.h"
#include "ss_proto.pb.h"
static void _GMOpsSelfChecking(f8::JsonHttpRequest* request) static void _GMOpsSelfChecking(f8::JsonHttpRequest* request)
{ {
@ -26,6 +29,7 @@ void HandlerMgr::UnInit()
void HandlerMgr::RegisterNetMsgHandlers() void HandlerMgr::RegisterNetMsgHandlers()
{ {
RegisterNetMsgHandler(&msmsghandler, &MasterSvrMgr::_SS_MS_ResponseTargetServer);
} }
void HandlerMgr::ProcGMMsg(unsigned long saddr, int sockhandle, void HandlerMgr::ProcGMMsg(unsigned long saddr, int sockhandle,

View File

@ -22,8 +22,7 @@ class HandlerMgr : public a8::Singleton<HandlerMgr>
void UnInit(); void UnInit();
f8::NetMsgHandlerObject gcmsghandler; f8::NetMsgHandlerObject gcmsghandler;
f8::NetMsgHandlerObject rsmsghandler; f8::NetMsgHandlerObject msmsghandler;
f8::NetMsgHandlerObject gsmsghandler;
void ProcGMMsg(unsigned long saddr, int sockhandle, void ProcGMMsg(unsigned long saddr, int sockhandle,
const std::string& url, const std::string& querystr); const std::string& url, const std::string& querystr);

View File

@ -32,6 +32,23 @@ void MasterSvrMgr::UnInit()
{ {
} }
void MasterSvrMgr::_SS_MS_ResponseTargetServer(f8::MsgHdr& hdr, const ss::SS_MS_ResponseTargetServer& msg)
{
f8::MsgHdr* context_hdr = GetHdr(msg.context_id());
if (context_hdr) {
if (msg.error_code() == 0) {
}
pending_request_hash_.erase(msg.context_id());
pending_socket_hash_.erase(hdr.socket_handle);
if (context_hdr->buf) {
free((char*)context_hdr->buf);
}
free(context_hdr);
}
}
MasterSvr* MasterSvrMgr::GetConnByInstanceId(int instance_id) MasterSvr* MasterSvrMgr::GetConnByInstanceId(int instance_id)
{ {
auto itr = mastersvr_hash_.find(instance_id); auto itr = mastersvr_hash_.find(instance_id);
@ -66,7 +83,7 @@ void MasterSvrMgr::OnClientDisconnect(a8::XParams& param)
if (hdr->buf) { if (hdr->buf) {
free((char*)hdr->buf); free((char*)hdr->buf);
} }
delete hdr; free(hdr);
pending_request_hash_.erase(conext_id); pending_request_hash_.erase(conext_id);
} }
pending_socket_hash_.erase(param.sender); pending_socket_hash_.erase(param.sender);

View File

@ -5,9 +5,17 @@ namespace f8
struct MsgHdr; struct MsgHdr;
} }
namespace ss
{
class SS_MS_ResponseTargetServer;
}
class MasterSvr; class MasterSvr;
class MasterSvrMgr : public a8::Singleton<MasterSvrMgr> class MasterSvrMgr : public a8::Singleton<MasterSvrMgr>
{ {
public:
enum { HID = HID_MasterSvrMgr };
private: private:
MasterSvrMgr() {}; MasterSvrMgr() {};
friend class a8::Singleton<MasterSvrMgr>; friend class a8::Singleton<MasterSvrMgr>;
@ -17,6 +25,7 @@ class MasterSvrMgr : public a8::Singleton<MasterSvrMgr>
void Init(); void Init();
void UnInit(); void UnInit();
void _SS_MS_ResponseTargetServer(f8::MsgHdr& hdr, const ss::SS_MS_ResponseTargetServer& msg);
void RequestTargetServer(f8::MsgHdr& hdr, const std::string& team_id); void RequestTargetServer(f8::MsgHdr& hdr, const std::string& team_id);
void OnClientDisconnect(a8::XParams& param); void OnClientDisconnect(a8::XParams& param);

View File

@ -29,6 +29,11 @@ void TargetConnMgr::UnInit()
} }
#if MASTER_MODE #if MASTER_MODE
TargetConn* TargetConnMgr::GetConnByKey(const std::string& key)
{
auto itr = target_conn_hash_.find(key);
return itr != target_conn_hash_.end() ? itr->second : nullptr;
}
#else #else
TargetConn* TargetConnMgr::GetConnByInstanceId(int instance_id) TargetConn* TargetConnMgr::GetConnByInstanceId(int instance_id)
{ {

View File

@ -13,6 +13,7 @@ class TargetConnMgr : public a8::Singleton<TargetConnMgr>
void UnInit(); void UnInit();
#if MASTER_MODE #if MASTER_MODE
TargetConn* GetConnByKey(const std::string& key);
#else #else
TargetConn* GetConnByInstanceId(int instance_id); TargetConn* GetConnByInstanceId(int instance_id);
#endif #endif
@ -20,6 +21,7 @@ class TargetConnMgr : public a8::Singleton<TargetConnMgr>
private: private:
#if MASTER_MODE #if MASTER_MODE
std::map<std::string, TargetConn*> target_conn_hash_;
#else #else
std::map<int, TargetConn*> target_conn_hash_; std::map<int, TargetConn*> target_conn_hash_;
#endif #endif