// 登录失败处理 int CLoginHandler::LoginFailed(const TNetHead_V2& rstNetHead) { unsigned int uiResultID = CHandlerHelper::GetErrorCode(); SendFailedResponse(uiResultID, rstNetHead); return 0; }
void RpcHandler::HandleRequest(const Request &request) { int id = request.GetId(); if(id <= 0) { qWarning() << "RpcHandler: Request: Invalid ID, from: " << request.GetFrom()->ToString(); return; } QString method = request.GetMethod(); QSharedPointer<RequestHandler> cb = _callbacks[method]; if(cb.isNull()) { qDebug() << "RpcHandler: Request: No such method: " << method << ", from: " << request.GetFrom()->ToString(); SendFailedResponse(request, Response::InvalidMethod, QString("No such method: " + method)); return; } qDebug() << "RpcHandler: Request " << request.GetId() << "Method:" << method << ", from:" << request.GetFrom()->ToString(); cb->MakeRequest(request); #ifdef RESPOND_NOTIFICATION if(request.GetType() == Request::NotificationType) { request.Respond(Request::NotificationType); } #endif }
int CChatHandler::OnRequestChat() { int iRet = SecurityCheck(); if(iRet < 0) { LOGERROR("Security Check Failed: Uin = %u, iRet = %d\n", m_pRequestMsg->m_stmsghead().m_uin(), iRet); SendFailedResponse(MSGID_ZONE_CHAT_RESPONSE, T_ZONE_SECURITY_CHECK_FAILED, *m_pNetHead); return -1; } unsigned int uiUin = m_pRoleObj->GetUin(); CGameRoleObj* pstRoleObj = GameTypeK32<CGameRoleObj>::GetByKey(uiUin); ASSERT_AND_LOG_RTN_INT(pstRoleObj); //玩家聊天操作的处理 const Zone_Chat_Request& rstRequest = m_pRequestMsg->m_stmsgbody().m_stzone_chat_request(); CChatUtility::SendChatMsg(*pstRoleObj, rstRequest.ichannel(), rstRequest.strmessage().c_str()); //处理聊天消息成功,返回 SendSuccessfulResponse(); return T_SERVER_SUCESS; }