bool NFNetModule::SendMsgPB(const uint16_t nMsgID, const google::protobuf::Message& xData, const NFSOCK nSockIndex, const std::vector<NFGUID>* pClientIDList) { if (!m_pNet) { std::ostringstream stream; stream << " m_pNet SendMsgPB faailed fd " << nSockIndex; stream << " Failed For Serialize of MsgBase, MessageID " << nMsgID; m_pLogModule->LogError(stream, __FUNCTION__, __LINE__); return false; } NFMsg::MsgBase xMsg; if (!xData.SerializeToString(xMsg.mutable_msg_data())) { std::ostringstream stream; stream << " SendMsgPB faailed fd " << nSockIndex; stream << " Failed For Serialize of MsgBase, MessageID " << nMsgID; m_pLogModule->LogError(stream, __FUNCTION__, __LINE__); return false; } NFMsg::Ident* pPlayerID = xMsg.mutable_player_id(); *pPlayerID = NFToPB(NFGUID()); if (pClientIDList) { for (int i = 0; i < pClientIDList->size(); ++i) { const NFGUID& ClientID = (*pClientIDList)[i]; NFMsg::Ident* pData = xMsg.add_player_client_list(); if (pData) { *pData = NFToPB(ClientID); } } } std::string strMsg; if (!xMsg.SerializeToString(&strMsg)) { std::ostringstream stream; stream << " SendMsgPB faailed fd " << nSockIndex; stream << " Failed For Serialize of MsgBase, MessageID " << nMsgID; m_pLogModule->LogError(stream, __FUNCTION__, __LINE__); return false; } return SendMsgWithOutHead(nMsgID, strMsg, nSockIndex); }
bool NFNetModule::SendMsgPB(const uint16_t nMsgID, const google::protobuf::Message& xData, const NFSOCK nSockIndex) { NFMsg::MsgBase xMsg; if (!xData.SerializeToString(xMsg.mutable_msg_data())) { std::ostringstream stream; stream << " SendMsgPB Message to " << nSockIndex; stream << " Failed For Serialize of MsgData, MessageID " << nMsgID; m_pLogModule->LogError(stream, __FUNCTION__, __LINE__); return false; } NFMsg::Ident* pPlayerID = xMsg.mutable_player_id(); *pPlayerID = NFToPB(NFGUID()); std::string strMsg; if (!xMsg.SerializeToString(&strMsg)) { std::ostringstream stream; stream << " SendMsgPB Message to " << nSockIndex; stream << " Failed For Serialize of MsgBase, MessageID " << nMsgID; m_pLogModule->LogError(stream, __FUNCTION__, __LINE__); return false; } SendMsgWithOutHead(nMsgID, strMsg, nSockIndex); return true; }
int NFCLoginNet_ServerModule::OnSelectWorldResultsEvent(const NFIDENTID& object, const int nEventID, const NFIDataList& var) { if (7 != var.GetCount() || !var.TypeEx(TDATA_TYPE::TDATA_INT, TDATA_TYPE::TDATA_OBJECT, TDATA_TYPE::TDATA_INT, TDATA_TYPE::TDATA_STRING, TDATA_TYPE::TDATA_STRING, TDATA_TYPE::TDATA_INT, TDATA_TYPE::TDATA_STRING, TDATA_TYPE::TDATA_UNKNOWN)) { return -1; } const int nWorldID = var.Int(0); const NFIDENTID xClientIdent = var.Object(1); const int nLoginID = var.Int(2); const std::string& strAccount = var.String(3); const std::string& strWorldAddress = var.String(4); int nPort = var.Int(5); const std::string& strWorldKey = var.String(6); NF_SHARE_PTR<int> xFD = mxClientIdent.GetElement(xClientIdent); if (xFD) { NFMsg::AckConnectWorldResult xMsg; xMsg.set_world_id(nWorldID); xMsg.mutable_sender()->CopyFrom(NFToPB(xClientIdent)); xMsg.set_login_id(nLoginID); xMsg.set_account(strAccount); xMsg.set_world_ip(strWorldAddress); xMsg.set_world_port(nPort); xMsg.set_world_key(strWorldKey); SendMsgPB(NFMsg::EGameMsgID::EGMI_ACK_CONNECT_WORLD, xMsg, *xFD); } return 0; }
bool NFNetModule::SendMsg(const uint16_t nMsgID, const std::string & xData, const NFSOCK nSockIndex, const NFGUID id) { NFMsg::MsgBase xMsg; xMsg.set_msg_data(xData.data(), xData.length()); NFMsg::Ident* pPlayerID = xMsg.mutable_player_id(); *pPlayerID = NFToPB(id); std::string strMsg; if (!xMsg.SerializeToString(&strMsg)) { std::ostringstream stream; stream << " SendMsgPB Message to " << nSockIndex; stream << " Failed For Serialize of MsgBase, MessageID " << nMsgID; m_pLogModule->LogError(stream, __FUNCTION__, __LINE__); return false; } return SendMsgWithOutHead(nMsgID, strMsg, nSockIndex); }