From 9daa10e6b2fa958e858742aaf6435f93b5a7a7cb Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 14 Sep 2020 20:13:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=B0=E8=80=81=E5=8D=8F?= =?UTF-8?q?=E8=AE=AE=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/imserver/app.cc | 18 ++++++++++++++++++ server/imserver/handlermgr.cc | 2 ++ server/imserver/playermgr.cc | 11 +++++++++++ server/imserver/playermgr.h | 2 ++ 4 files changed, 33 insertions(+) diff --git a/server/imserver/app.cc b/server/imserver/app.cc index 7b43173..c9906b3 100644 --- a/server/imserver/app.cc +++ b/server/imserver/app.cc @@ -30,6 +30,8 @@ #include "MSConnMgr.h" #include "IMConnMgr.h" +#include "cs_msgid.pb.h" + #include "framework/cpp/msgqueue.h" #include "framework/cpp/tglog.h" #include "framework/cpp/netmsghandler.h" @@ -367,6 +369,22 @@ void App::DispatchMsg() void App::ProcessWSProxyMsg(f8::MsgHdr& hdr) { + if (hdr.msgid == cs::CMMessageId_e::_CMLogin) { + cs::CMLoginCommonHead common_head; + bool ok = common_head.ParseFromArray(hdr.buf + hdr.offset, hdr.buflen - hdr.offset); + if (ok) { + if (common_head.has_server_id()) { + cs::CMLoginOld msg; + msg.ParseFromArray(hdr.buf + hdr.offset, hdr.buflen - hdr.offset); + PlayerMgr::Instance()->_CMLoginOld(hdr, msg); + } else { + cs::CMLogin msg; + msg.ParseFromArray(hdr.buf + hdr.offset, hdr.buflen - hdr.offset); + PlayerMgr::Instance()->_CMLogin(hdr, msg); + } + } + return; + } f8::NetMsgHandler* handler = f8::GetNetMsgHandler(&HandlerMgr::Instance()->wsmsghandler, hdr.msgid); if (handler) { diff --git a/server/imserver/handlermgr.cc b/server/imserver/handlermgr.cc index b6eb60f..6a718d1 100644 --- a/server/imserver/handlermgr.cc +++ b/server/imserver/handlermgr.cc @@ -64,7 +64,9 @@ void HandlerMgr::RegisterNetMsgHandlers() RegisterNetMsgHandler(&wsmsghandler, &WSListener::_SS_Ping); RegisterNetMsgHandler(&wsmsghandler, &PlayerMgr::_SS_WSP_SocketDisconnect); + #if 0 RegisterNetMsgHandler(&wsmsghandler, &PlayerMgr::_CMLogin); + #endif RegisterNetMsgHandler(&wsmsghandler, &Player::_CMPing); RegisterNetMsgHandler(&wsmsghandler, &Player::_CMUpdateUserInfo); diff --git a/server/imserver/playermgr.cc b/server/imserver/playermgr.cc index 22644e2..a2319cf 100644 --- a/server/imserver/playermgr.cc +++ b/server/imserver/playermgr.cc @@ -213,6 +213,17 @@ void PlayerMgr::_SS_IM_UpdateUserInfo(f8::MsgHdr& hdr, const ss::SS_IM_UpdateUse } } +void PlayerMgr::_CMLoginOld(f8::MsgHdr& hdr, const cs::CMLoginOld& msg) +{ + cs::CMLogin new_msg; + new_msg.set_account_id(msg.account_id()); + new_msg.set_session_id(msg.session_id()); + new_msg.set_nickname(msg.nickname()); + new_msg.set_avatar_url(msg.avatar_url()); + new_msg.set_sex(msg.sex()); + _CMLogin(hdr, new_msg); +} + void PlayerMgr::_CMLogin(f8::MsgHdr& hdr, const cs::CMLogin& msg) { Player* hum = GetPlayerByAccountId(msg.account_id()); diff --git a/server/imserver/playermgr.h b/server/imserver/playermgr.h index b70eef3..dbc06d6 100644 --- a/server/imserver/playermgr.h +++ b/server/imserver/playermgr.h @@ -2,6 +2,7 @@ namespace cs { + class CMLoginOld; class CMLogin; } @@ -53,6 +54,7 @@ class PlayerMgr : public a8::Singleton void _SS_IM_UpdateUserInfo(f8::MsgHdr& hdr, const ss::SS_IM_UpdateUserInfo& msg); + void _CMLoginOld(f8::MsgHdr& hdr, const cs::CMLoginOld& msg); void _CMLogin(f8::MsgHdr& hdr, const cs::CMLogin& msg); Player* GetPlayerBySocket(int socket);