This commit is contained in:
aozhiwei 2020-06-13 21:18:00 +08:00
parent 045b34151a
commit 4d8542cbfd
7 changed files with 89 additions and 36 deletions

View File

@ -47,6 +47,8 @@ void HandlerMgr::RegisterNetMsgHandlers()
RegisterNetMsgHandler(&wsmsghandler, &PlayerMgr::_SS_WSP_SocketDisconnect);
RegisterNetMsgHandler(&wsmsghandler, &PlayerMgr::_CMLogin);
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMUpdateUserInfo);
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMUpdateTempCustomData);
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMFriendList);
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMFriendApply);
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMFriendIgnore);

View File

@ -30,37 +30,33 @@ void Player::UnInit()
void Player::Deserialize(const ss::MFUserDB& user_db)
{
#if 0
for (auto& friend_db : user_db.friends()) {
Friend friendobj;
friendobj.account_id = friend_db.account_id();
friendobj.nickname = friend_db.nickname();
friendobj.avatar_url = friend_db.avatar_url();
friendobj.sex = friend_db.sex();
friendobj.group_id = friend_db.group_id();
friendobj.data_version1 = friend_db.data_version1();
TypeConvert::Convert(friend_db.base_data(), friendobj.base_data);
friendobj.crc32_code = a8::openssl::Crc32(
(unsigned char*)account_id.data(),
account_id.size()
);;
friend_hash_[friendobj.account_id] = friendobj;
friend_hash_[friendobj.base_data.account_id] = friendobj;
}
#endif
}
void Player::Serialize(ss::MFUserDB& user_db)
{
#if 0
for (auto& pair : friend_hash_) {
auto p = user_db.add_friends();
p->set_account_id(pair.second.account_id);
p->set_nickname(pair.second.nickname);
p->set_avatar_url(pair.second.avatar_url);
p->set_sex(pair.second.sex);
p->set_group_id(pair.second.group_id);
p->set_data_version1(pair.second.data_version1);
TypeConvert::Convert(pair.second.base_data, *(p->mutable_base_data()));
}
#endif
}
void Player::_CMUpdateUserInfo(f8::MsgHdr& hdr, const cs::CMUpdateUserInfo& msg)
{
}
void Player::_CMUpdateTempCustomData(f8::MsgHdr& hdr, const cs::CMUpdateTempCustomData& msg)
{
}
void Player::_CMFriendList(f8::MsgHdr& hdr, const cs::CMFriendList& msg)
@ -341,16 +337,11 @@ void Player::NotifyOffline()
void Player::FillFriendList(::google::protobuf::RepeatedPtrField< ::cs::MFUserInfo >* friend_list)
{
#if 0
for (auto& pair : friend_hash_) {
auto p = friend_list->Add();
p->set_account_id(pair.second.account_id);
p->set_nickname(pair.second.nickname);
p->set_avatar_url(pair.second.avatar_url);
p->set_sex(pair.second.sex);
p->set_online(pair.second.online);
TypeConvert::Convert(pair.second.base_data, *(p->mutable_base_data()));
TypeConvert::Convert(pair.second.temp_custom_data, *(p->mutable_temp_custom_data()));
}
#endif
}
void Player::FillIMMsgConext(f8::MsgHdr& hdr, ss::MFIMMsgConext* conext)

View File

@ -15,18 +15,9 @@ class Player
unsigned int crc32_code = 0;
a8::TimerAttacher timer_attacher;
std::string account_id;
std::string nickname;
std::string avatar_url;
int sex = 0;
long long group_id = 0;
Friend data;
int today_invite_times = 0;
int last_invite_time = 0;
int data_version1 = 0;
long long user_value1 = 0;
long long user_value2 = 0;
long long user_value3 = 0;
public:
void Init();
@ -41,6 +32,8 @@ class Player
WSListener::Instance()->SendToClient(socket_handle, 0, msg);
}
void _CMUpdateUserInfo(f8::MsgHdr& hdr, const cs::CMUpdateUserInfo& msg);
void _CMUpdateTempCustomData(f8::MsgHdr& hdr, const cs::CMUpdateTempCustomData& msg);
void _CMFriendList(f8::MsgHdr& hdr, const cs::CMFriendList& msg);
void _CMFriendApply(f8::MsgHdr& hdr, const cs::CMFriendApply& msg);
void _CMFriendApplyList(f8::MsgHdr& hdr, const cs::CMFriendApplyList& msg);

View File

@ -1,6 +1,7 @@
#include "precompile.h"
#include <a8/openssl.h>
#include <a8/udplog.h>
#include "playermgr.h"
#include "player.h"
@ -93,6 +94,12 @@ void PlayerMgr::OnWSProxyDisconnect(a8::XParams& param)
for (int socket_handle : socket_list) {
OnClientSocketDisconnect(socket_handle);
}
a8::UdpLog::Instance()->Warning
(
"OnWSProxyDisconnect %d",
{
ws_socket
});
}
void PlayerMgr::OnClientDisconnect(a8::XParams& param)
@ -327,4 +334,12 @@ void PlayerMgr::OnClientSocketDisconnect(int socket_handle)
accountid_hash_.erase(hum->account_id);
}
}
#ifdef DEBUG
a8::UdpLog::Instance()->Debug
(
"OnClientSocketDisconnect %d",
{
socket_handle
});
#endif
}

View File

@ -1,6 +1,8 @@
#include "precompile.h"
#include "typeconvert.h"
#include "cs_proto.pb.h"
#include "ss_proto.pb.h"
void TypeConvert::Convert(const cs::MFFriendApply& apply_pb, FriendApply& apply)
{
@ -10,3 +12,24 @@ void TypeConvert::Convert(const FriendApply& apply, cs::MFFriendApply& apply_pb)
{
}
void TypeConvert::Convert(const BaseUserData& base_data, ss::MFBaseUserDataDB& base_data_pb)
{
}
void TypeConvert::Convert(const ss::MFBaseUserDataDB& base_data_pb, const BaseUserData& base_data)
{
}
void TypeConvert::Convert(const BaseUserData& base_data, cs::MFBaseUserData& base_data_pb)
{
}
void TypeConvert::Convert(const UserTempCustomData& temp_custom_data,
cs::MFUserTempCustomData& tmpe_custom_data_pb)
{
}

View File

@ -3,6 +3,13 @@
namespace cs
{
class MFFriendApply;
class MFBaseUserData;
class MFUserTempCustomData;
}
namespace ss
{
class MFBaseUserDataDB;
}
class TypeConvert
@ -10,4 +17,8 @@ class TypeConvert
public:
static void Convert(const cs::MFFriendApply& apply_pb, FriendApply& apply);
static void Convert(const FriendApply& apply, cs::MFFriendApply& apply_pb);
static void Convert(const BaseUserData& base_data, ss::MFBaseUserDataDB& base_data_pb);
static void Convert(const ss::MFBaseUserDataDB& base_data_pb, const BaseUserData& base_data);
static void Convert(const BaseUserData& base_data, cs::MFBaseUserData& base_data_pb);
static void Convert(const UserTempCustomData& temp_custom_data, cs::MFUserTempCustomData& tmpe_custom_data_pb);
};

View File

@ -1,6 +1,6 @@
#pragma once
struct Friend
struct BaseUserData
{
std::string account_id;
std::string nickname;
@ -9,11 +9,29 @@ struct Friend
int online = 0;
long long group_id = 0;
long long user_value1 = 0;
long long user_value2 = 0;
long long user_value3 = 0;
long long data_version1 = 0;
};
struct UserTempCustomData
{
long long value1 = 0;
long long value2 = 0;
long long value3 = 0;
};
struct Friend
{
BaseUserData base_data;
UserTempCustomData temp_custom_data;
std::string server_host;
int server_port;
long long server_ident = 0;
int data_version1 = 0;
unsigned int crc32_code = 0;
};