本文整理汇总了C++中nfmsg::ServerInfoReport类的典型用法代码示例。如果您正苦于以下问题:C++ ServerInfoReport类的具体用法?C++ ServerInfoReport怎么用?C++ ServerInfoReport使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ServerInfoReport类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnWorldView
bool NFCLoginNet_HttpServerModule::OnWorldView(const NFHttpRequest & req)
{
std::string strResponse;
NFResponseWorldList xResponsetWorldList;
NFMapEx<int, NFMsg::ServerInfoReport>& xWorldMap = m_pLoginToMasterModule->GetWorldMap();
NFMsg::ServerInfoReport* pWorldData = xWorldMap.FirstNude();
while (pWorldData)
{
NFResponseWorldList::NFWorld xWorld;
xWorld.id = pWorldData->server_id();
xWorld.name = pWorldData->server_name();
xWorld.state = pWorldData->server_state();
xWorld.count = pWorldData->server_cur_count();
xResponsetWorldList.world.push_back(xWorld);
pWorldData = xWorldMap.NextNude();
}
ajson::string_stream ss;
ajson::save_to(ss, xResponsetWorldList);
strResponse = ss.str();
return m_pHttpNetModule->ResponseMsg(req, strResponse, NFWebStatus::WEB_OK);
}
示例2: OnGameServerRegisteredProcess
int NFCWorldNet_ServerModule::OnGameServerRegisteredProcess(const NFIPacket& msg)
{
NFIDENTID nPlayerID;
NFMsg::ServerInfoReportList xMsg;
if (!RecivePB(msg, xMsg, nPlayerID))
{
return 0;
}
for (int i = 0; i < xMsg.server_list_size(); ++i)
{
NFMsg::ServerInfoReport* pData = xMsg.mutable_server_list(i);
NF_SHARE_PTR<ServerData> pServerData = mGameMap.GetElement(pData->server_id());
if (!pServerData.get())
{
pServerData = NF_SHARE_PTR<ServerData>(NF_NEW ServerData());
mGameMap.AddElement(pData->server_id(), pServerData);
}
pServerData->nFD = msg.GetFd();
*(pServerData->pData) = *pData;
m_pLogModule->LogNormal(NFILogModule::NLL_INFO_NORMAL, NFIDENTID(0, pData->server_id()), pData->server_name(), "GameServerRegistered");
}
SynGameToProxy();
return 0;
}
示例3: OnRefreshWorldInfoProcess
int NFCMasterNet_ServerModule::OnRefreshWorldInfoProcess(const int nSockIndex, const int nMsgID, const char* msg, const uint32_t nLen)
{
NFGUID nPlayerID;
NFMsg::ServerInfoReportList xMsg;
if (!RecivePB(nSockIndex, nMsgID, msg, nLen, xMsg, nPlayerID))
{
return 0;
}
for (int i = 0; i < xMsg.server_list_size(); ++i)
{
NFMsg::ServerInfoReport* pData = xMsg.mutable_server_list(i);
NF_SHARE_PTR<ServerData> pServerData = mWorldMap.GetElement(pData->server_id());
if (!pServerData.get())
{
pServerData = NF_SHARE_PTR<ServerData>(NF_NEW ServerData());
mWorldMap.AddElement(pData->server_id(), pServerData);
}
pServerData->nFD = nSockIndex;
*(pServerData->pData) = *pData;
m_pLogModule->LogNormal(NFILogModule::NLL_INFO_NORMAL, NFGUID(0, pData->server_id()), pData->server_name(), "RefreshWorldInfo");
}
SynWorldToLogin();
return 0;
}
示例4: ServerReport
void NFCWorldToMasterModule::ServerReport()
{
if (mLastReportTime + 10 > pPluginManager->GetNowTime())
{
return;
}
mLastReportTime = pPluginManager->GetNowTime();
std::shared_ptr<NFIClass> xLogicClass = m_pClassModule->GetElement(NFrame::Server::ThisName());
if (xLogicClass)
{
NFList<std::string>& strIdList = xLogicClass->GetIdList();
std::string strId;
for (bool bRet = strIdList.First(strId); bRet; bRet = strIdList.Next(strId))
{
const int nServerType = m_pElementModule->GetPropertyInt(strId, NFrame::Server::Type());
const int nServerID = m_pElementModule->GetPropertyInt(strId, NFrame::Server::ServerID());
if (pPluginManager->GetAppID() == nServerID)
{
const int nPort = m_pElementModule->GetPropertyInt(strId, NFrame::Server::Port());
const int nMaxConnect = m_pElementModule->GetPropertyInt(strId, NFrame::Server::MaxOnline());
const std::string& strName = m_pElementModule->GetPropertyString(strId, NFrame::Server::Name());
const std::string& strIP = m_pElementModule->GetPropertyString(strId, NFrame::Server::IP());
NFMsg::ServerInfoReport reqMsg;
reqMsg.set_server_id(nServerID);
reqMsg.set_server_name(strName);
reqMsg.set_server_cur_count(0);
reqMsg.set_server_ip(strIP);
reqMsg.set_server_port(nPort);
reqMsg.set_server_max_online(nMaxConnect);
reqMsg.set_server_state(NFMsg::EST_NARMAL);
reqMsg.set_server_type(nServerType);
for (int n = 0;n < 10;n++)
{
AddServerInfoExt("key" + lexical_cast<std::string>(n), "value" + lexical_cast<std::string>(n));
}
NFMsg::ServerInfoExt pb_ServerInfoExt;
for (auto it = m_mServerInfoExt.begin(); it != m_mServerInfoExt.end(); it++)
{
*pb_ServerInfoExt.add_key() = it->first;
*pb_ServerInfoExt.add_value() = it->second;
}
reqMsg.mutable_server_info_list_ext()->CopyFrom(pb_ServerInfoExt);
std::shared_ptr<ConnectData> pServerData = m_pNetClientModule->GetServerList().First();
if (pServerData)
{
m_pNetClientModule->SendToServerByPB(pServerData->nGameID, NFMsg::EGMI_STS_SERVER_REPORT, reqMsg);
}
}
}
}
}
示例5: UnRegister
void NFCGameServerToWorldModule::UnRegister()
{
NF_SHARE_PTR<NFILogicClass> xLogicClass = m_pLogicClassModule->GetElement("GameServer");
if (xLogicClass.get())
{
NFList<std::string>& xNameList = xLogicClass->GetConfigNameList();
std::string strConfigName;
if (xNameList.Get(0, strConfigName))
{
const int nServerID = m_pElementInfoModule->GetPropertyInt(strConfigName, "ServerID");
const int nPort = m_pElementInfoModule->GetPropertyInt(strConfigName, "Port");
const int nMaxConnect = m_pElementInfoModule->GetPropertyInt(strConfigName, "MaxOnline");
const int nCpus = m_pElementInfoModule->GetPropertyInt(strConfigName, "CpuCount");
const std::string& strName = m_pElementInfoModule->GetPropertyString(strConfigName, "Name");
const std::string& strIP = m_pElementInfoModule->GetPropertyString(strConfigName, "IP");
NFMsg::ServerInfoReportList xMsg;
NFMsg::ServerInfoReport* pData = xMsg.add_server_list();
pData->set_server_id(nServerID);
pData->set_server_name(strName);
pData->set_server_cur_count(0);
pData->set_server_ip(strIP);
pData->set_server_port(nPort);
pData->set_server_max_online(nMaxConnect);
pData->set_server_state(NFMsg::EST_MAINTEN);
SendMsgPB(NFMsg::EGameMsgID::EGMI_GTW_GAME_UNREGISTERED, xMsg, GetNet()->FD());
m_pLogModule->LogNormal(NFILogModule::NLL_INFO_NORMAL, NFIDENTID(0, pData->server_id()), pData->server_name(), "UnRegister");
}
}
}
示例6: OnGameServerUnRegisteredProcess
int NFCWorldNet_ServerModule::OnGameServerUnRegisteredProcess(const NFIPacket& msg)
{
NFIDENTID nPlayerID;
NFMsg::ServerInfoReportList xMsg;
if (!RecivePB(msg, xMsg, nPlayerID))
{
return 0;
}
for (int i = 0; i < xMsg.server_list_size(); ++i)
{
NFMsg::ServerInfoReport* pData = xMsg.mutable_server_list(i);
mGameMap.RemoveElement(pData->server_id());
m_pLogModule->LogNormal(NFILogModule::NLL_INFO_NORMAL, NFIDENTID(0, pData->server_id()), pData->server_name(), "GameServerRegistered");
}
return 0;
}
示例7: Register
void NFCGameServerToWorldModule::Register(NFINet* pNet)
{
//成功就注册
NF_SHARE_PTR<NFILogicClass> xLogicClass = m_pLogicClassModule->GetElement("Server");
if (xLogicClass.get())
{
NFList<std::string>& xNameList = xLogicClass->GetConfigNameList();
std::string strConfigName;
for (bool bRet = xNameList.First(strConfigName); bRet; bRet = xNameList.Next(strConfigName))
{
const int nServerType = m_pElementInfoModule->GetPropertyInt(strConfigName, "Type");
const int nServerID = m_pElementInfoModule->GetPropertyInt(strConfigName, "ServerID");
if (nServerType == NF_SERVER_TYPES::NF_ST_GAME && pPluginManager->AppID() == nServerID)
{
const int nPort = m_pElementInfoModule->GetPropertyInt(strConfigName, "Port");
const int nMaxConnect = m_pElementInfoModule->GetPropertyInt(strConfigName, "MaxOnline");
const int nCpus = m_pElementInfoModule->GetPropertyInt(strConfigName, "CpuCount");
const std::string& strName = m_pElementInfoModule->GetPropertyString(strConfigName, "Name");
const std::string& strIP = m_pElementInfoModule->GetPropertyString(strConfigName, "IP");
NFMsg::ServerInfoReportList xMsg;
NFMsg::ServerInfoReport* pData = xMsg.add_server_list();
pData->set_server_id(nServerID);
pData->set_server_name(strName);
pData->set_server_cur_count(0);
pData->set_server_ip(strIP);
pData->set_server_port(nPort);
pData->set_server_max_online(nMaxConnect);
pData->set_server_state(NFMsg::EST_NARMAL);
pData->set_server_type(nServerType);
NF_SHARE_PTR<ServerData> pServerData = GetServerNetInfo(pNet);
if (pServerData)
{
int nTargetID = pServerData->nGameID;
SendToServerByPB(nTargetID, NFMsg::EGameMsgID::EGMI_GTW_GAME_REGISTERED, xMsg);
m_pLogModule->LogNormal(NFILogModule::NLL_INFO_NORMAL, NFIDENTID(0, pData->server_id()), pData->server_name(), "Register");
}
}
}
}
}
示例8: Register
void NFCProxyServerToWorldModule::Register(NFINet* pNet)
{
NF_SHARE_PTR<NFIClass> xLogicClass = m_pClassModule->GetElement(NFrame::Server::ThisName());
if (xLogicClass)
{
const std::vector<std::string>& strIdList = xLogicClass->GetIDList();
for (int i = 0; i < strIdList.size(); ++i)
{
const std::string& strId = strIdList[i];
const int nServerType = m_pElementModule->GetPropertyInt32(strId, NFrame::Server::Type());
const int nServerID = m_pElementModule->GetPropertyInt32(strId, NFrame::Server::ServerID());
if (nServerType == NF_SERVER_TYPES::NF_ST_PROXY && pPluginManager->GetAppID() == nServerID)
{
const int nPort = m_pElementModule->GetPropertyInt32(strId, NFrame::Server::Port());
const int nMaxConnect = m_pElementModule->GetPropertyInt32(strId, NFrame::Server::MaxOnline());
const int nCpus = m_pElementModule->GetPropertyInt32(strId, NFrame::Server::CpuCount());
const std::string& strName = m_pElementModule->GetPropertyString(strId, NFrame::Server::Name());
const std::string& strIP = m_pElementModule->GetPropertyString(strId, NFrame::Server::IP());
NFMsg::ServerInfoReportList xMsg;
NFMsg::ServerInfoReport* pData = xMsg.add_server_list();
pData->set_server_id(nServerID);
pData->set_server_name(strName);
pData->set_server_cur_count(0);
pData->set_server_ip(strIP);
pData->set_server_port(nPort);
pData->set_server_max_online(nMaxConnect);
pData->set_server_state(NFMsg::EST_NARMAL);
pData->set_server_type(nServerType);
NF_SHARE_PTR<ConnectData> pServerData = GetClusterModule()->GetServerNetInfo(pNet);
if (pServerData)
{
int nTargetID = pServerData->nGameID;
GetClusterModule()->SendToServerByPB(nTargetID, NFMsg::EGameMsgID::EGMI_PTWG_PROXY_REGISTERED, xMsg);
m_pLogModule->LogNormal(NFILogModule::NLL_INFO_NORMAL, NFGUID(0, pData->server_id()), pData->server_name(), "Register");
}
}
}
}
}
示例9: OnLoginUnRegisteredProcess
int NFCMasterNet_ServerModule::OnLoginUnRegisteredProcess(const int nSockIndex, const int nMsgID, const char* msg, const uint32_t nLen)
{
NFGUID nPlayerID;
NFMsg::ServerInfoReportList xMsg;
if (!RecivePB(nSockIndex, nMsgID, msg, nLen, xMsg, nPlayerID))
{
return 0;
}
for (int i = 0; i < xMsg.server_list_size(); ++i)
{
NFMsg::ServerInfoReport* pData = xMsg.mutable_server_list(i);
mLoginMap.RemoveElement(pData->server_id());
m_pLogModule->LogNormal(NFILogModule::NLL_INFO_NORMAL, NFGUID(0, pData->server_id()), pData->server_name(), "LoginUnRegistered");
}
return 0;
}
示例10: ServerReport
void NFCProxyServerToWorldModule::ServerReport()
{
if (mLastReportTime + 10 > pPluginManager->GetNowTime())
{
return;
}
mLastReportTime = pPluginManager->GetNowTime();
std::shared_ptr<NFIClass> xLogicClass = m_pClassModule->GetElement(NFrame::Server::ThisName());
if (xLogicClass)
{
const std::vector<std::string>& strIdList = xLogicClass->GetIDList();
for (int i = 0; i < strIdList.size(); ++i)
{
const std::string& strId = strIdList[i];
const int nServerType = m_pElementModule->GetPropertyInt32(strId, NFrame::Server::Type());
const int nServerID = m_pElementModule->GetPropertyInt32(strId, NFrame::Server::ServerID());
if ( pPluginManager->GetAppID() == nServerID)
{
const int nPort = m_pElementModule->GetPropertyInt32(strId, NFrame::Server::Port());
const int nMaxConnect = m_pElementModule->GetPropertyInt32(strId, NFrame::Server::MaxOnline());
const std::string& strName = m_pElementModule->GetPropertyString(strId, NFrame::Server::Name());
const std::string& strIP = m_pElementModule->GetPropertyString(strId, NFrame::Server::IP());
NFMsg::ServerInfoReport reqMsg;
reqMsg.set_server_id(nServerID);
reqMsg.set_server_name(strName);
reqMsg.set_server_cur_count(0);
reqMsg.set_server_ip(strIP);
reqMsg.set_server_port(nPort);
reqMsg.set_server_max_online(nMaxConnect);
reqMsg.set_server_state(NFMsg::EST_NARMAL);
reqMsg.set_server_type(nServerType);
std::shared_ptr<ConnectData> pServerData = m_pNetClientModule->GetServerNetInfo(NF_SERVER_TYPES::NF_ST_WORLD);
if (pServerData)
{
m_pNetClientModule->SendToServerByPB(pServerData->nGameID, NFMsg::EGMI_STS_SERVER_REPORT, reqMsg);
}
}
}
}
}
示例11: SynWorldToClient
void NFCLoginNet_ServerModule::SynWorldToClient( const int nFD )
{
NFMsg::AckServerList xData;
xData.set_type(NFMsg::RSLT_WORLD_SERVER);
NFMapEx<int, NFMsg::ServerInfoReport>& xWorldMap = m_pLoginToMasterModule->GetWorldMap();
NFMsg::ServerInfoReport* pWorldData = xWorldMap.FirstNude();
while (pWorldData)
{
NFMsg::ServerInfo* pServerInfo = xData.add_info();
pServerInfo->set_name(pWorldData->server_name());
pServerInfo->set_status(pWorldData->server_state());
pServerInfo->set_server_id(pWorldData->server_id());
pServerInfo->set_wait_count(0);
pWorldData = xWorldMap.NextNude();
}
SendMsgPB(NFMsg::EGameMsgID::EGMI_ACK_WORLD_LIST, xData, nFD);
}
示例12: ServerReport
void NFCWorldNet_ServerModule::ServerReport(int reportServerId, NFMsg::EServerState serverStatus)
{
std::shared_ptr<NFIClass> xLogicClass = m_pClassModule->GetElement(NFrame::Server::ThisName());
if (xLogicClass)
{
const std::vector<std::string>& strIdList = xLogicClass->GetIDList();
for (int i = 0; i < strIdList.size(); ++i)
{
const std::string& strId = strIdList[i];
const int nServerType = m_pElementModule->GetPropertyInt32(strId, NFrame::Server::Type());
const int nServerID = m_pElementModule->GetPropertyInt32(strId, NFrame::Server::ServerID());
if (reportServerId == nServerID)
{
const int nPort = m_pElementModule->GetPropertyInt32(strId, NFrame::Server::Port());
const int nMaxConnect = m_pElementModule->GetPropertyInt32(strId, NFrame::Server::MaxOnline());
const std::string& strName = m_pElementModule->GetPropertyString(strId, NFrame::Server::Name());
const std::string& strIP = m_pElementModule->GetPropertyString(strId, NFrame::Server::IP());
NFMsg::ServerInfoReport reqMsg;
reqMsg.set_server_id(nServerID);
reqMsg.set_server_name(strName);
reqMsg.set_server_cur_count(0);
reqMsg.set_server_ip(strIP);
reqMsg.set_server_port(nPort);
reqMsg.set_server_max_online(nMaxConnect);
reqMsg.set_server_state(serverStatus);
reqMsg.set_server_type(nServerType);
m_pNetClientModule->SendToAllServerByPB(NF_SERVER_TYPES::NF_ST_MASTER, NFMsg::EGMI_STS_SERVER_REPORT, reqMsg);
}
}
}
}
示例13: OnServerReport
void NFCMasterNet_ServerModule::OnServerReport(const NFSOCK nFd, const int msgId, const char* buffer, const uint32_t nLen)
{
NFGUID xGUID;
NFMsg::ServerInfoReport msg;
if (!m_pNetModule->ReceivePB(msgId, buffer, nLen, msg, xGUID))
{
return;
}
std::shared_ptr<ServerData> pServerData;
if (msg.server_type() == NF_SERVER_TYPES::NF_ST_LOGIN)
{
pServerData = mLoginMap.GetElement(msg.server_id());
if (!pServerData)
{
pServerData = std::shared_ptr<ServerData>(new ServerData());
mLoginMap.AddElement(msg.server_id(), pServerData);
}
}
else if (msg.server_type() == NF_SERVER_TYPES::NF_ST_WORLD)
{
pServerData = mWorldMap.GetElement(msg.server_id());
if (!pServerData)
{
pServerData = std::shared_ptr<ServerData>(new ServerData());
mWorldMap.AddElement(msg.server_id(), pServerData);
}
}
else if (msg.server_type() == NF_SERVER_TYPES::NF_ST_PROXY)
{
pServerData = mProxyMap.GetElement(msg.server_id());
if (!pServerData)
{
pServerData = std::shared_ptr<ServerData>(new ServerData());
mProxyMap.AddElement(msg.server_id(), pServerData);
}
}
else if (msg.server_type() == NF_SERVER_TYPES::NF_ST_GAME)
{
pServerData = mGameMap.GetElement(msg.server_id());
if (!pServerData)
{
pServerData = std::shared_ptr<ServerData>(new ServerData());
mGameMap.AddElement(msg.server_id(), pServerData);
}
}
else if (msg.server_type() == NF_SERVER_TYPES::NF_ST_AI)
{
pServerData = mGameMap.GetElement(msg.server_id());
if (!pServerData)
{
pServerData = std::shared_ptr<ServerData>(new ServerData());
mGameMap.AddElement(msg.server_id(), pServerData);
}
}
//udate status
pServerData->nFD = nFd;
*(pServerData->pData) = msg;
//std::cout << "ServerReport:"<<msg.server_name() << std::endl;
}
示例14: AfterInit
bool NFCMasterNet_ServerModule::AfterInit()
{
m_pNetModule->AddReceiveCallBack(NFMsg::EGMI_STS_HEART_BEAT, this, &NFCMasterNet_ServerModule::OnHeartBeat);
m_pNetModule->AddReceiveCallBack(NFMsg::EGMI_WTM_WORLD_REGISTERED, this, &NFCMasterNet_ServerModule::OnWorldRegisteredProcess);
m_pNetModule->AddReceiveCallBack(NFMsg::EGMI_WTM_WORLD_UNREGISTERED, this, &NFCMasterNet_ServerModule::OnWorldUnRegisteredProcess);
m_pNetModule->AddReceiveCallBack(NFMsg::EGMI_WTM_WORLD_REFRESH, this, &NFCMasterNet_ServerModule::OnRefreshWorldInfoProcess);
m_pNetModule->AddReceiveCallBack(NFMsg::EGMI_LTM_LOGIN_REGISTERED, this, &NFCMasterNet_ServerModule::OnLoginRegisteredProcess);
m_pNetModule->AddReceiveCallBack(NFMsg::EGMI_LTM_LOGIN_UNREGISTERED, this, &NFCMasterNet_ServerModule::OnLoginUnRegisteredProcess);
m_pNetModule->AddReceiveCallBack(NFMsg::EGMI_LTM_LOGIN_REFRESH, this, &NFCMasterNet_ServerModule::OnRefreshLoginInfoProcess);
m_pNetModule->AddReceiveCallBack(NFMsg::EGMI_REQ_CONNECT_WORLD, this, &NFCMasterNet_ServerModule::OnSelectWorldProcess);
m_pNetModule->AddReceiveCallBack(NFMsg::EGMI_ACK_CONNECT_WORLD, this, &NFCMasterNet_ServerModule::OnSelectServerResultProcess);
m_pNetModule->AddReceiveCallBack(NFMsg::EGMI_STS_SERVER_REPORT, this, &NFCMasterNet_ServerModule::OnServerReport);
m_pNetModule->AddReceiveCallBack(this, &NFCMasterNet_ServerModule::InvalidMessage);
m_pNetModule->AddEventCallBack(this, &NFCMasterNet_ServerModule::OnSocketEvent);
m_pNetModule->ExpandBufferSize();
NF_SHARE_PTR<NFIClass> xLogicClass = m_pClassModule->GetElement(NFrame::Server::ThisName());
if (xLogicClass)
{
const std::vector<std::string>& strIdList = xLogicClass->GetIDList();
for (int i = 0; i < strIdList.size(); ++i)
{
const std::string& strId = strIdList[i];
const int nServerType = m_pElementModule->GetPropertyInt32(strId, NFrame::Server::Type());
const int nServerID = m_pElementModule->GetPropertyInt32(strId, NFrame::Server::ServerID());
if (nServerType == NF_SERVER_TYPES::NF_ST_MASTER && pPluginManager->GetAppID() == nServerID)
{
const int nPort = m_pElementModule->GetPropertyInt32(strId, NFrame::Server::Port());
const int nMaxConnect = m_pElementModule->GetPropertyInt32(strId, NFrame::Server::MaxOnline());
const int nCpus = m_pElementModule->GetPropertyInt32(strId, NFrame::Server::CpuCount());
const std::string& strName = m_pElementModule->GetPropertyString(strId, NFrame::Server::Name());
const std::string& strIP = m_pElementModule->GetPropertyString(strId, NFrame::Server::IP());
int nRet = m_pNetModule->Initialization(nMaxConnect, nPort, nCpus);
if (nRet < 0)
{
std::ostringstream strLog;
strLog << "Cannot init server net, Port = " << nPort;
m_pLogModule->LogNormal(NFILogModule::NLL_ERROR_NORMAL, NULL_OBJECT, strLog, __FUNCTION__, __LINE__);
NFASSERT(nRet, "Cannot init server net", __FILE__, __FUNCTION__);
exit(0);
}
NFMsg::ServerInfoReport reqMsg;
reqMsg.set_server_id(nServerID);
reqMsg.set_server_name(strName);
reqMsg.set_server_cur_count(0);
reqMsg.set_server_ip(strIP);
reqMsg.set_server_port(nPort);
reqMsg.set_server_max_online(nMaxConnect);
reqMsg.set_server_state(NFMsg::EST_NARMAL);
reqMsg.set_server_type(nServerType);
auto pServerData = NF_SHARE_PTR<ServerData>(NF_NEW ServerData());
*(pServerData->pData) = reqMsg;
mMasterMap.AddElement(nServerID, pServerData);
}
}
}
return true;
}
示例15: Register
void NFCWorldToMasterModule::Register(NFINet* pNet)
{
NF_SHARE_PTR<NFIClass> xLogicClass = m_pClassModule->GetElement(NFrame::Server::ThisName());
if (xLogicClass)
{
NFList<std::string>& strIdList = xLogicClass->GetIdList();
std::string strId;
for (bool bRet = strIdList.First(strId); bRet; bRet = strIdList.Next(strId))
{
const int nServerType = m_pElementModule->GetPropertyInt(strId, NFrame::Server::Type());
const int nServerID = m_pElementModule->GetPropertyInt(strId, NFrame::Server::ServerID());
if (nServerType == NF_SERVER_TYPES::NF_ST_WORLD && pPluginManager->GetAppID() == nServerID)
{
const int nPort = m_pElementModule->GetPropertyInt(strId, NFrame::Server::Port());
const int nMaxConnect = m_pElementModule->GetPropertyInt(strId, NFrame::Server::MaxOnline());
const int nCpus = m_pElementModule->GetPropertyInt(strId, NFrame::Server::CpuCount());
const std::string& strName = m_pElementModule->GetPropertyString(strId, NFrame::Server::Name());
const std::string& strIP = m_pElementModule->GetPropertyString(strId, NFrame::Server::IP());
NFMsg::ServerInfoReportList xMsg;
NFMsg::ServerInfoReport* pData = xMsg.add_server_list();
pData->set_server_id(nServerID);
pData->set_server_name(strName);
pData->set_server_cur_count(0);
pData->set_server_ip(strIP);
pData->set_server_port(nPort);
pData->set_server_max_online(nMaxConnect);
pData->set_server_state(NFMsg::EST_NARMAL);
pData->set_server_type(nServerType);
NFMsg::ServerInfoExt pb_ServerInfoExt;
pData->mutable_server_info_list_ext()->CopyFrom(pb_ServerInfoExt);
NF_SHARE_PTR<ConnectData> pServerData = m_pNetClientModule->GetServerNetInfo(pNet);
if (pServerData)
{
int nTargetID = pServerData->nGameID;
m_pNetClientModule->SendToServerByPB(nTargetID, NFMsg::EGameMsgID::EGMI_MTL_WORLD_REGISTERED, xMsg);
m_pLogModule->LogNormal(NFILogModule::NLL_INFO_NORMAL, NFGUID(0, pData->server_id()), pData->server_name(), "Register");
}
}
}
}
}