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
{
HID_Player,
HID_PlayerMgr,
HID_RoomSvrMgr,
HID_GCListener,
HID_MasterSvrMgr,
};
enum PlayerState_e

View File

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

View File

@ -22,8 +22,7 @@ class HandlerMgr : public a8::Singleton<HandlerMgr>
void UnInit();
f8::NetMsgHandlerObject gcmsghandler;
f8::NetMsgHandlerObject rsmsghandler;
f8::NetMsgHandlerObject gsmsghandler;
f8::NetMsgHandlerObject msmsghandler;
void ProcGMMsg(unsigned long saddr, int sockhandle,
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)
{
auto itr = mastersvr_hash_.find(instance_id);
@ -66,7 +83,7 @@ void MasterSvrMgr::OnClientDisconnect(a8::XParams& param)
if (hdr->buf) {
free((char*)hdr->buf);
}
delete hdr;
free(hdr);
pending_request_hash_.erase(conext_id);
}
pending_socket_hash_.erase(param.sender);

View File

@ -5,9 +5,17 @@ namespace f8
struct MsgHdr;
}
namespace ss
{
class SS_MS_ResponseTargetServer;
}
class MasterSvr;
class MasterSvrMgr : public a8::Singleton<MasterSvrMgr>
{
public:
enum { HID = HID_MasterSvrMgr };
private:
MasterSvrMgr() {};
friend class a8::Singleton<MasterSvrMgr>;
@ -17,6 +25,7 @@ class MasterSvrMgr : public a8::Singleton<MasterSvrMgr>
void Init();
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 OnClientDisconnect(a8::XParams& param);

View File

@ -29,6 +29,11 @@ void TargetConnMgr::UnInit()
}
#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
TargetConn* TargetConnMgr::GetConnByInstanceId(int instance_id)
{

View File

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