void CentServer::HandleSYN(NETInputPacket *pPacket,CentHandler *pHandler) { NETOutputPacket OutPkg; OutPkg.Begin(CLIENT_CMD_SYNC); OutPkg.End(); pHandler->Send(&OutPkg); }
void CentServer::ForwardPacket2All(NETInputPacket *pPacket,CentHandler *pHandler) { log_debug("CentServer::ForwardPacket2All. double-exp time begin."); NETOutputPacket outPacket; outPacket.Copy(pPacket->packet_buf(),pPacket->packet_size()); outPacket.End(); g_GetPlayerMgr().SendMsgToAll(&outPacket); }
void CHelperUnit::SendClientClose(int uid) { NETOutputPacket transPacket; transPacket.Begin(CLIENT_CLOSE_PACKET); transPacket.WriteInt(uid); transPacket.WriteInt(TGlobal::_svid); transPacket.End(); if((int)_helperpool->m_svidlist.size() > 0) { int svid = TGlobal::LoopSvid(_helperpool->m_svidlist); CHelperUnit *pHelperUnit = NULL; map<int, CHelperUnit*>::iterator iterHelper = _helperpool->m_helpermap.find(svid); if(iterHelper != _helperpool->m_helpermap.end()) { pHelperUnit = iterHelper->second; if(pHelperUnit != NULL) { pHelperUnit->append_pkg(transPacket.packet_buf(), transPacket.packet_size()); pHelperUnit->send_to_logic(_helperTimer); } } else { g_pErrorLog->logMsg("%s||Cannot find helper, svid:[%d]", __FUNCTION__, svid); } } }
void CentServer::HandleUserMsg(NETInputPacket *pPacket,CentHandler *pHandler) { log_debug("HandleUserMsg \n"); uint32 UserID = pPacket->ReadInt(); CPlayer *pPlayer = g_GetPlayerMgr().GetPlayer(UserID); if( pPlayer == NULL ) { log_debug("HandleUserMsg user is null \n"); return; } NETOutputPacket outPacket; int pos = 9 + sizeof(int); int len = pPacket->packet_size() - pos; outPacket.Copy(pPacket->packet_buf()+pos,len); outPacket.End(); log_debug("SendMsg is %d \n",outPacket.GetCmdType()); pPlayer->SendMsg(&outPacket); }
void CentServer::OnConnect(CentHandler *pHandler ) { log_debug("OnConnect with hall\n"); // send the regist info ServerConfig_T cfg = g_GetConfigMgr().getServerConfig(); uint32 nGroupID = g_GetConfigMgr().getGroupID(); uint32 nType = g_GetConfigMgr().getServerType(); uint32 nServerID = g_GetConfigMgr().getServerID(); if( pHandler->GetHandlerType() == emCENTER_HANDLE ) { m_bIsConnect = true; log_debug("CentServer OnConnect \n"); NETOutputPacket packet; packet.Begin( SERVER_TO_CENTSERVER_REGIST ); packet.WriteShort( cfg.id ); packet.WriteShort( cfg.type ); packet.WriteString( cfg.host.c_str() ); packet.WriteInt( cfg.port ); packet.End(); pHandler->Send(&packet); log_debug("Send Resgist info %d \n",cfg.id); } else if ( pHandler->GetHandlerType() == emMONITER_HANDLE ) { log_debug( " CGameMgr::OnMonitorConnect. xMonitor. \n" ); NETOutputPacket packet; packet.Begin(Monitor::REGISTER_SERVER_REQUEST); packet.WriteInt(nServerID); packet.WriteInt(nType); packet.WriteInt(nGroupID); packet.End(); pHandler->Send(&packet); } }
int CHelperUnit::_pay_res(NETInputPacket* pack) { int ret = 0; int code = 0; string json, result; Reader r; Value v; unsigned long flow; CClientUnit *c; CDecoderUnit *d; NETOutputPacket out; CEncryptDecrypt ed; log_debug("-------- CHelperUnit::_pay_res begin --------"); code = pack->ReadByte(); json = pack->ReadString(); log_debug("ErrCode: %d", code); log_debug("JSON: %s", json.c_str()); if (r.parse(json, v)) { flow = v["flow"].asUInt64(); result = v["result"].asString(); out.Begin(SERVER_CMD_REP); out.WriteInt(0); out.WriteString(result); out.End(); } else { /* error handle */ out.Begin(SERVER_CMD_REP); out.WriteInt(1); out.WriteString(""); out.End(); log_debug("-------- CHelperUnit::_pay_res error --------"); ret = -1; } ed.EncryptBuffer(&out); /* 编码 */ c = _get_client_by_id(flow, &d); if (c && c->get_state() != CONN_FATAL_ERROR) { c->add_rsp_buf(out.packet_buf(), out.packet_size()); ret = c->send(); } log_debug("-------- CHelperUnit::_pay_res end --------"); return ret; }