添加新老协议兼容

This commit is contained in:
aozhiwei 2020-09-14 20:13:42 +08:00
parent f9499dd070
commit 9daa10e6b2
4 changed files with 33 additions and 0 deletions

View File

@ -30,6 +30,8 @@
#include "MSConnMgr.h" #include "MSConnMgr.h"
#include "IMConnMgr.h" #include "IMConnMgr.h"
#include "cs_msgid.pb.h"
#include "framework/cpp/msgqueue.h" #include "framework/cpp/msgqueue.h"
#include "framework/cpp/tglog.h" #include "framework/cpp/tglog.h"
#include "framework/cpp/netmsghandler.h" #include "framework/cpp/netmsghandler.h"
@ -367,6 +369,22 @@ void App::DispatchMsg()
void App::ProcessWSProxyMsg(f8::MsgHdr& hdr) 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, f8::NetMsgHandler* handler = f8::GetNetMsgHandler(&HandlerMgr::Instance()->wsmsghandler,
hdr.msgid); hdr.msgid);
if (handler) { if (handler) {

View File

@ -64,7 +64,9 @@ void HandlerMgr::RegisterNetMsgHandlers()
RegisterNetMsgHandler(&wsmsghandler, &WSListener::_SS_Ping); RegisterNetMsgHandler(&wsmsghandler, &WSListener::_SS_Ping);
RegisterNetMsgHandler(&wsmsghandler, &PlayerMgr::_SS_WSP_SocketDisconnect); RegisterNetMsgHandler(&wsmsghandler, &PlayerMgr::_SS_WSP_SocketDisconnect);
#if 0
RegisterNetMsgHandler(&wsmsghandler, &PlayerMgr::_CMLogin); RegisterNetMsgHandler(&wsmsghandler, &PlayerMgr::_CMLogin);
#endif
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMPing); RegisterNetMsgHandler(&wsmsghandler, &Player::_CMPing);
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMUpdateUserInfo); RegisterNetMsgHandler(&wsmsghandler, &Player::_CMUpdateUserInfo);

View File

@ -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) void PlayerMgr::_CMLogin(f8::MsgHdr& hdr, const cs::CMLogin& msg)
{ {
Player* hum = GetPlayerByAccountId(msg.account_id()); Player* hum = GetPlayerByAccountId(msg.account_id());

View File

@ -2,6 +2,7 @@
namespace cs namespace cs
{ {
class CMLoginOld;
class CMLogin; class CMLogin;
} }
@ -53,6 +54,7 @@ class PlayerMgr : public a8::Singleton<PlayerMgr>
void _SS_IM_UpdateUserInfo(f8::MsgHdr& hdr, const ss::SS_IM_UpdateUserInfo& msg); 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); void _CMLogin(f8::MsgHdr& hdr, const cs::CMLogin& msg);
Player* GetPlayerBySocket(int socket); Player* GetPlayerBySocket(int socket);