From 4d8542cbfd6acfa0968bf7489ce8b67167bd8696 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sat, 13 Jun 2020 21:18:00 +0800 Subject: [PATCH] 1 --- server/imserver/handlermgr.cc | 2 ++ server/imserver/player.cc | 39 +++++++++++++--------------------- server/imserver/player.h | 13 +++--------- server/imserver/playermgr.cc | 15 +++++++++++++ server/imserver/typeconvert.cc | 23 ++++++++++++++++++++ server/imserver/typeconvert.h | 11 ++++++++++ server/imserver/types.h | 22 +++++++++++++++++-- 7 files changed, 89 insertions(+), 36 deletions(-) diff --git a/server/imserver/handlermgr.cc b/server/imserver/handlermgr.cc index 1cb5a54..13a82d3 100644 --- a/server/imserver/handlermgr.cc +++ b/server/imserver/handlermgr.cc @@ -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); diff --git a/server/imserver/player.cc b/server/imserver/player.cc index 3b13ae2..7a3bdc8 100644 --- a/server/imserver/player.cc +++ b/server/imserver/player.cc @@ -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) diff --git a/server/imserver/player.h b/server/imserver/player.h index 84a642f..6818355 100644 --- a/server/imserver/player.h +++ b/server/imserver/player.h @@ -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); diff --git a/server/imserver/playermgr.cc b/server/imserver/playermgr.cc index 67c7816..b4ed265 100644 --- a/server/imserver/playermgr.cc +++ b/server/imserver/playermgr.cc @@ -1,6 +1,7 @@ #include "precompile.h" #include +#include #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 } diff --git a/server/imserver/typeconvert.cc b/server/imserver/typeconvert.cc index e726abe..0e50cc4 100644 --- a/server/imserver/typeconvert.cc +++ b/server/imserver/typeconvert.cc @@ -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) +{ + +} diff --git a/server/imserver/typeconvert.h b/server/imserver/typeconvert.h index 1d93aa1..e0192be 100644 --- a/server/imserver/typeconvert.h +++ b/server/imserver/typeconvert.h @@ -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); }; diff --git a/server/imserver/types.h b/server/imserver/types.h index 223fdf4..763c895 100644 --- a/server/imserver/types.h +++ b/server/imserver/types.h @@ -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; };