1
This commit is contained in:
parent
37d7c529f4
commit
fc5ed7f577
@ -16,14 +16,18 @@
|
||||
#include "GCListener.h"
|
||||
#include "jsondatamgr.h"
|
||||
#include "handlermgr.h"
|
||||
#include "target_conn.h"
|
||||
#include "target_conn_mgr.h"
|
||||
#include "gameclient.h"
|
||||
#include "gameclientmgr.h"
|
||||
#include "ss_msgid.pb.h"
|
||||
#include "ss_proto.pb.h"
|
||||
|
||||
#if MASTER_MODE
|
||||
#include "mastersvr.h"
|
||||
#include "mastersvrmgr.h"
|
||||
#else
|
||||
#include "target_conn.h"
|
||||
#include "target_conn_mgr.h"
|
||||
#endif
|
||||
|
||||
struct MsgNode
|
||||
{
|
||||
@ -94,8 +98,11 @@ void App::Init(int argc, char* argv[])
|
||||
GCListener::Instance()->Init();
|
||||
uuid.SetMachineId(instance_id);
|
||||
GameClientMgr::Instance()->Init();
|
||||
TargetConnMgr::Instance()->Init();
|
||||
#if MASTER_MODE
|
||||
MasterSvrMgr::Instance()->Init();
|
||||
#else
|
||||
TargetConnMgr::Instance()->Init();
|
||||
#endif
|
||||
|
||||
a8::UdpLog::Instance()->Info("masterserver starting instance_id:%d pid:%d", {instance_id, getpid()});
|
||||
{
|
||||
@ -117,8 +124,11 @@ void App::UnInit()
|
||||
if (terminated) {
|
||||
return;
|
||||
}
|
||||
#if MASTER_MODE
|
||||
MasterSvrMgr::Instance()->UnInit();
|
||||
#else
|
||||
TargetConnMgr::Instance()->UnInit();
|
||||
#endif
|
||||
GameClientMgr::Instance()->UnInit();
|
||||
GCListener::Instance()->UnInit();
|
||||
JsonDataMgr::Instance()->UnInit();
|
||||
@ -301,12 +311,17 @@ void App::DispatchMsg()
|
||||
break;
|
||||
case SF_TargetServer:
|
||||
{
|
||||
#if MASTER_MODE
|
||||
#else
|
||||
ProcessTargetServerMsg(hdr);
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
case SF_MasterServer:
|
||||
{
|
||||
#if MASTER_MODE
|
||||
ProcessMasterServerMsg(hdr);
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -330,6 +345,8 @@ void App::ProcessClientMsg(f8::MsgHdr& hdr)
|
||||
if (hdr.msgid < 100) {
|
||||
return;
|
||||
}
|
||||
#if MASTER_MODE
|
||||
#else
|
||||
TargetConn* conn = nullptr;
|
||||
if (hdr.msgid == ss::_SS_CMLogin || hdr.msgid == ss::_SS_CMReConnect) {
|
||||
ss::SS_CMLogin_CMReConnect_CommonHead msg;
|
||||
@ -353,8 +370,15 @@ void App::ProcessClientMsg(f8::MsgHdr& hdr)
|
||||
if (conn) {
|
||||
conn->ForwardClientMsg(hdr);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#if MASTER_MODE
|
||||
void App::ProcessMasterServerMsg(f8::MsgHdr& hdr)
|
||||
{
|
||||
|
||||
}
|
||||
#else
|
||||
void App::ProcessTargetServerMsg(f8::MsgHdr& hdr)
|
||||
{
|
||||
if (hdr.msgid < 100) {
|
||||
@ -366,11 +390,7 @@ void App::ProcessTargetServerMsg(f8::MsgHdr& hdr)
|
||||
}
|
||||
GCListener::Instance()->ForwardTargetConnMsg(hdr);
|
||||
}
|
||||
|
||||
void App::ProcessMasterServerMsg(f8::MsgHdr& hdr)
|
||||
{
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
void App::ProcessIMMsg()
|
||||
{
|
||||
|
@ -42,8 +42,11 @@ private:
|
||||
void ProcessIMMsg();
|
||||
|
||||
void ProcessClientMsg(f8::MsgHdr& hdr);
|
||||
void ProcessTargetServerMsg(f8::MsgHdr& hdr);
|
||||
#if MASTER_MODE
|
||||
void ProcessMasterServerMsg(f8::MsgHdr& hdr);
|
||||
#else
|
||||
void ProcessTargetServerMsg(f8::MsgHdr& hdr);
|
||||
#endif
|
||||
|
||||
void InitLog();
|
||||
void UnInitLog();
|
||||
|
@ -50,6 +50,8 @@ GameClient* GameClientMgr::GetGameClientBySocket(int sockhandle)
|
||||
return itr != socket_hash_.end() ? itr->second : nullptr;
|
||||
}
|
||||
|
||||
#if MASTER_MODE
|
||||
#else
|
||||
void GameClientMgr::BindTargetConn(int socket_handle, int conn_instance_id)
|
||||
{
|
||||
TargetConn* conn = TargetConnMgr::Instance()->GetConnByInstanceId(conn_instance_id);
|
||||
@ -65,3 +67,4 @@ void GameClientMgr::BindTargetConn(int socket_handle, int conn_instance_id)
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -15,7 +15,10 @@ class GameClientMgr : public a8::Singleton<GameClientMgr>
|
||||
void OnClientDisconnect(a8::XParams& param);
|
||||
void OnTargetServerDisconnect(a8::XParams& param);
|
||||
GameClient* GetGameClientBySocket(int sockhande);
|
||||
#if MASTER_MODE
|
||||
#else
|
||||
void BindTargetConn(int socket_handle, int conn_instance_id);
|
||||
#endif
|
||||
|
||||
private:
|
||||
std::map<int, GameClient*> socket_hash_;
|
||||
|
@ -6,18 +6,35 @@
|
||||
void JsonDataMgr::Init()
|
||||
{
|
||||
std::string wsproxyserver_cluster_json_file;
|
||||
#if MASTER_MODE
|
||||
std::string masterserver_cluster_json_file;
|
||||
#else
|
||||
std::string targetserver_cluster_json_file;
|
||||
#endif
|
||||
if (f8::IsOnlineEnv()) {
|
||||
wsproxyserver_cluster_json_file = a8::Format("../config/game%d.wsproxy.cluster.json", {GAME_ID});
|
||||
#if MASTER_MODE
|
||||
masterserver_cluster_json_file = a8::Format("../config/game%d.masterserver.cluster.json", {GAME_ID});
|
||||
#else
|
||||
targetserver_cluster_json_file = a8::Format("../config/game%d.gameserver.cluster.json", {GAME_ID});
|
||||
#endif
|
||||
} else {
|
||||
wsproxyserver_cluster_json_file = a8::Format("/var/data/conf_test/game%d/wsproxy/game%d.wsproxy.cluster.json",
|
||||
{GAME_ID, GAME_ID});
|
||||
#if MASTER_MODE
|
||||
masterserver_cluster_json_file = a8::Format("/var/data/conf_test/game%d/wsproxy/game%d.masterserver.cluster.json",
|
||||
{GAME_ID, GAME_ID});
|
||||
#else
|
||||
targetserver_cluster_json_file = a8::Format("/var/data/conf_test/game%d/wsproxy/game%d.gameserver.cluster.json",
|
||||
{GAME_ID, GAME_ID});
|
||||
#endif
|
||||
}
|
||||
wsproxyserver_cluster_json_.ReadFromFile(wsproxyserver_cluster_json_file);
|
||||
#if MASTER_MODE
|
||||
masterserver_cluster_json_.ReadFromFile(masterserver_cluster_json_file);
|
||||
#else
|
||||
targetserver_cluster_json_.ReadFromFile(targetserver_cluster_json_file);
|
||||
#endif
|
||||
}
|
||||
|
||||
void JsonDataMgr::UnInit()
|
||||
@ -32,7 +49,14 @@ std::shared_ptr<a8::XObject> JsonDataMgr::GetConf()
|
||||
return wsproxyserver_cluster_json_[App::Instance()->instance_id - 1];
|
||||
}
|
||||
|
||||
#if MASTER_MODE
|
||||
std::shared_ptr<a8::XObject> JsonDataMgr::GetMasterServerClusterConf()
|
||||
{
|
||||
return std::make_shared<a8::XObject>(masterserver_cluster_json_);
|
||||
}
|
||||
#else
|
||||
std::shared_ptr<a8::XObject> JsonDataMgr::GetTargetServerClusterConf()
|
||||
{
|
||||
return std::make_shared<a8::XObject>(targetserver_cluster_json_);
|
||||
}
|
||||
#endif
|
||||
|
@ -11,10 +11,19 @@ class JsonDataMgr : public a8::Singleton<JsonDataMgr>
|
||||
void UnInit();
|
||||
|
||||
std::shared_ptr<a8::XObject> GetConf();
|
||||
#if MASTER_MODE
|
||||
std::shared_ptr<a8::XObject> GetMasterServerClusterConf();
|
||||
#else
|
||||
std::shared_ptr<a8::XObject> GetTargetServerClusterConf();
|
||||
#endif
|
||||
|
||||
|
||||
private:
|
||||
a8::XObject wsproxyserver_cluster_json_;
|
||||
#if MASTER_MODE
|
||||
a8::XObject masterserver_cluster_json_;
|
||||
#else
|
||||
a8::XObject targetserver_cluster_json_;
|
||||
#endif
|
||||
|
||||
};
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
void MasterSvrMgr::Init()
|
||||
{
|
||||
auto master_svr_cluster_conf = JsonDataMgr::Instance()->GetTargetServerClusterConf();
|
||||
auto master_svr_cluster_conf = JsonDataMgr::Instance()->GetMasterServerClusterConf();
|
||||
for (int i = 0; i < master_svr_cluster_conf->Size(); ++i) {
|
||||
auto master_svr_conf = master_svr_cluster_conf->At(i);
|
||||
int instance_id = master_svr_conf->At("instance_id")->AsXValue();
|
||||
|
@ -29,11 +29,7 @@ class TargetConn
|
||||
void SendMsg(T& msg)
|
||||
{
|
||||
static int msgid = f8::Net_GetMessageId(msg);
|
||||
#if 1
|
||||
f8::Net_SendProxyCMsg(tcp_client_, msgid, msg);
|
||||
#else
|
||||
f8::Net_SendMsg(tcp_client_, 0, msgid, msg);
|
||||
#endif
|
||||
}
|
||||
|
||||
void ForwardClientMsg(f8::MsgHdr& hdr);
|
||||
|
@ -6,6 +6,8 @@
|
||||
|
||||
void TargetConnMgr::Init()
|
||||
{
|
||||
#if MASTER_MODE
|
||||
#else
|
||||
auto target_server_cluster_conf = JsonDataMgr::Instance()->GetTargetServerClusterConf();
|
||||
for (int i = 0; i < target_server_cluster_conf->Size(); ++i) {
|
||||
auto target_server_conf = target_server_cluster_conf->At(i);
|
||||
@ -19,14 +21,18 @@ void TargetConnMgr::Init()
|
||||
conn->Open();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void TargetConnMgr::UnInit()
|
||||
{
|
||||
}
|
||||
|
||||
#if MASTER_MODE
|
||||
#else
|
||||
TargetConn* TargetConnMgr::GetConnByInstanceId(int instance_id)
|
||||
{
|
||||
auto itr = target_conn_hash_.find(instance_id);
|
||||
return itr != target_conn_hash_.end() ? itr->second : nullptr;
|
||||
}
|
||||
#endif
|
||||
|
@ -12,8 +12,15 @@ class TargetConnMgr : public a8::Singleton<TargetConnMgr>
|
||||
void Init();
|
||||
void UnInit();
|
||||
|
||||
#if MASTER_MODE
|
||||
#else
|
||||
TargetConn* GetConnByInstanceId(int instance_id);
|
||||
#endif
|
||||
|
||||
private:
|
||||
|
||||
#if MASTER_MODE
|
||||
#else
|
||||
std::map<int, TargetConn*> target_conn_hash_;
|
||||
#endif
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user