ForSClientMsgHandler::ForSClientMsgHandler():m_bIsWsMsg(true) { #define REGISTER_INTERNAL_MESSAGE(msg_idx,cls,handler)\ {\ RegisterMessage(msg_idx, sizeof(cls), boost::bind(&ForSClientMsgHandler::handler, this , _1, _2, _3)); \ } REGISTER_INTERNAL_MESSAGE(PRO_SS_REP_LOGINED,SSRepLogined,RepLogined); // 登录结果 REGISTER_INTERNAL_MESSAGE(PRO_SS_REP_SERVERINFO_LIST,SSRepServerInfoList,RepServerInfoList); // 服务器管理信息协议 REGISTER_INTERNAL_MESSAGE(PRO_SS_NOFTTY_SERVERID,SSSessionNofitySInfo,NofityClientSessionInfo); // 同步分配服务器ID REGISTER_INTERNAL_MESSAGE(PRO_SS_REP_PING_S,SSRepPingS,RepPingToS); // ping #undef REGISTER_INTERNAL_MESSAGE // 这里其实fep只作为ws的客户端,也只有ws到client的消息 #define REGISTER_S2C_MESSAGE(msg_idx,cls)\ {\ RegisterMessage(msg_idx, sizeof(cls), boost::bind(&ForSClientMsgHandler::ServerToClient, this, _1, _2, _3)); \ } // from ws #undef REGISTER_S2C_MESSAGE }
ForServerMsgHandler::ForServerMsgHandler() { // common 需要用到内部协议 // 内部协议,即不分不同servertype,都去做统一的事情,如登录,返回列表,ping等等操作 #define REGISTER_INTERNAL_MESSAGE(msg_idx,cls,handler) \ {\ RegisterMessage(msg_idx, sizeof(cls), boost::bind(&ForServerMsgHandler::handler, this, _1, _2, _3)); \ } REGISTER_INTERNAL_MESSAGE(PRO_SS_REQ_LOGIN_WS,SSReqLoginWs,ReqLogin); REGISTER_INTERNAL_MESSAGE(PRO_SS_REQ_LOAD_LEST,SSReqLoadLest,ReqRoadLest); REGISTER_INTERNAL_MESSAGE(PRO_SS_REQ_CLIENT_EXIT,SSNofityClientExit,NofityClientExit); #undef REGISTER_INTERNAL_MESSAGE // dp #define REGISTER_DP_MESSAGE(msg_idx,cls,handler)\ {\ RegisterMessage(msg_idx, sizeof(cls), boost::bind(&DpServerProcHandler::handler, DpServerProcHandler::Instance(), _1, _2, _3)); \ } #undef REGISTER_DP_MESSAGE // ls #define REGISTER_LS_MESSAGE(msg_idx,cls,handler)\ {\ RegisterMessage(msg_idx, sizeof(cls), boost::bind(&LoginServerProcHandler::handler, LoginServerProcHandler::Instance(), _1, _2, _3)); \ } #undef REGISTER_LS_MESSAGE // fep #define REGISTER_FEP_MESSAGE(msg_idx,cls,handler)\ {\ RegisterMessage(msg_idx, sizeof(cls), boost::bind(&FepServerProcHandler::handler, FepServerProcHandler::Instance(), _1, _2, _3)); \ } #undef REGISTER_FEP_MESSAGE // ss #define REGISTER_SS_MESSAGE(msg_idx,cls,handler)\ {\ RegisterMessage(msg_idx, sizeof(cls), boost::bind(&SceneServerProcHandler::handler, SceneServerProcHandler::Instance(), _1, _2, _3)); \ } #undef REGISTER_SS_MESSAGE // client #define REGISTER_CLIENT_MESSAGE(msg_idx,cls,handler)\ {\ RegisterMessage(msg_idx, sizeof(cls), boost::bind(&ClientProcHandler::handler, ClientProcHandler::Instance(), _1, _2, _3)); \ } REGISTER_CLIENT_MESSAGE(PRO_C2W_SWITCH_SCENE,C2WSwitchScene,ReqSwitchScene); // 切换场景 #undef REGISTER_CLIENT_MESSAGE }
ForWorldMsgHandler::ForWorldMsgHandler() { // 内部协议 #define REGISTER_INTERNAL_MESSAGE(msg_idx,cls,handler)\ {\ RegisterMessage(msg_idx, sizeof(cls), boost::bind(&ForWorldMsgHandler::handler, this, _1, _2, _3)); \ } REGISTER_INTERNAL_MESSAGE(PRO_SS_REP_LOGINED,SSRepLogined,RepLogined); // 登录结果 REGISTER_INTERNAL_MESSAGE(PRO_SS_REP_SERVERINFO_LIST,SSRepServerInfoList,RepServerInfoList); // 服务器管理信息协议 REGISTER_INTERNAL_MESSAGE(PRO_SS_NOFTTY_SERVERID,SSSessionNofitySInfo,NofityClientSessionInfo); // 同步分配服务器ID REGISTER_INTERNAL_MESSAGE(PRO_SS_REQ_CLIENT_EXIT,SSNofityClientExit,NofityClientExit); #undef REGISTER_INTERNAL_MESSAGE }
ForServerMsgHandler::ForServerMsgHandler() { // 内部协议 #define REGISTER_INTERNAL_MESSAGE(msg_idx,cls,handler)\ {\ RegisterMessage(msg_idx, sizeof(cls), boost::bind(&ForServerMsgHandler::handler, this, _1, _2, _3)); \ } REGISTER_INTERNAL_MESSAGE(PRO_SS_REQ_LOGIN_S, SSReqLoginS, ReqLogined); // 请求登录 #undef REGISTER_INTERNAL_MESSAGE }
ForServerMsgHandler::ForServerMsgHandler() { #define REGISTER_INTERNAL_MESSAGE(msg_idx,cls,handler)\ {\ RegisterMessage(msg_idx, sizeof(cls), boost::bind(&ForServerMsgHandler::handler, this, _1, _2, _3)); \ } REGISTER_INTERNAL_MESSAGE(PRO_SS_REP_LOGINED,SSRepLogined,RepLogined); // 登录结果 #undef REGISTER_INTERNAL_MESSAGE }
ForServerMsgHandler::ForServerMsgHandler() { // 内部协议 #define REGISTER_INTERNAL_MESSAGE(msg_idx,cls,handler)\ {\ RegisterMessage(msg_idx, sizeof(cls), boost::bind(&ForServerMsgHandler::handler, this, _1, _2, _3)); \ } REGISTER_INTERNAL_MESSAGE(PRO_SS_REQ_LOGIN_S, SSReqLoginS, ReqLogined); // 请求登录 REGISTER_INTERNAL_MESSAGE(PRO_SS_REQ_PING_S,SSReqPingToS,ReqPingToS); REGISTER_INTERNAL_MESSAGE(PRO_SS_NOFTTY_SERVERID,SSSessionNofitySInfo,NofityClientSessionInfo); // 同步分配服务器ID REGISTER_INTERNAL_MESSAGE(PRO_SS_REQ_CLIENT_EXIT,SSNofityClientExit, ReqClientExitScene); #undef REGISTER_INTERNAL_MESSAGE // 来自server的请求协议 #define REGISTER_SS_MESSAGE(msg_idx,cls,handler)\ {\ RegisterMessage(msg_idx, sizeof(cls), boost::bind(&ProcServerHandler::handler, ProcServerHandler::Instance(), _1, _2, _3)); \ } //----------------for ls---------------------- REGISTER_SS_MESSAGE(PRO_L2D_NAMES_LIST,L2DNamesList,ReqNamesList); REGISTER_SS_MESSAGE(PRO_L2D_ACCOUNT_LOGIN, L2DAccountLogin,ReqAccountLogin); // 用户登录查询 REGISTER_SS_MESSAGE(PRO_L2D_ROLE_CREATE, L2DRoleCreate, ReqRoleCreate); //----------------for ss---------------------- REGISTER_SS_MESSAGE(PRO_S2D_LOAD_CHARACTER, S2DLoadCharacter,ReqLoadCharacter); REGISTER_SS_MESSAGE(PRO_S2D_SAVE_CHARACTER, S2DSaveUserAllData, ReqSaveCharacter); REGISTER_SS_MESSAGE(PRO_S2D_SAVE_MIXITEMNUMBER,S2DSaveMixItemNumber,ReqSaveMixItemNumber); #undef REGISTER_SS_MESSAGE }