This commit is contained in:
aozhiwei 2020-09-29 20:08:02 +08:00
parent 4c9b572079
commit 1bcc82aef3
9 changed files with 57 additions and 1 deletions

View File

@ -103,6 +103,16 @@ void GuildMgr::_SS_IM_ForwardGuildSMMsg(f8::MsgHdr& hdr, const ss::SS_IM_Forward
} }
} }
void GuildMgr::_SS_IM_RefeshGuildMemberInfo(f8::MsgHdr& hdr, const ss::SS_IM_RefeshGuildMemberInfo& msg)
{
}
void GuildMgr::_SS_IM_PushGuildUserOnlineState(f8::MsgHdr& hdr, const ss::SS_IM_PushGuildUserOnlineState& msg)
{
}
void GuildMgr::CreateAsyncTask(int socket_handle, long long guild_id, AsyncGuildTask* task) void GuildMgr::CreateAsyncTask(int socket_handle, long long guild_id, AsyncGuildTask* task)
{ {
Guild* guild = GetGuild(guild_id); Guild* guild = GetGuild(guild_id);

View File

@ -5,6 +5,8 @@ namespace ss
class MFIMMsgConext; class MFIMMsgConext;
class SS_IM_ForwardGuildCMMsg; class SS_IM_ForwardGuildCMMsg;
class SS_IM_ForwardGuildSMMsg; class SS_IM_ForwardGuildSMMsg;
class SS_IM_RefeshGuildMemberInfo;
class SS_IM_PushGuildUserOnlineState;
} }
class Guild; class Guild;
@ -35,6 +37,8 @@ class GuildMgr : public a8::Singleton<GuildMgr>
const ::google::protobuf::Message& smmsg); const ::google::protobuf::Message& smmsg);
void _SS_IM_ForwardGuildCMMsg(f8::MsgHdr& hdr, const ss::SS_IM_ForwardGuildCMMsg& msg); void _SS_IM_ForwardGuildCMMsg(f8::MsgHdr& hdr, const ss::SS_IM_ForwardGuildCMMsg& msg);
void _SS_IM_ForwardGuildSMMsg(f8::MsgHdr& hdr, const ss::SS_IM_ForwardGuildSMMsg& msg); void _SS_IM_ForwardGuildSMMsg(f8::MsgHdr& hdr, const ss::SS_IM_ForwardGuildSMMsg& msg);
void _SS_IM_RefeshGuildMemberInfo(f8::MsgHdr& hdr, const ss::SS_IM_RefeshGuildMemberInfo& msg);
void _SS_IM_PushGuildUserOnlineState(f8::MsgHdr& hdr, const ss::SS_IM_PushGuildUserOnlineState& msg);
private: private:
void CreateAsyncTask(int socket_handle, long long guild_id, AsyncGuildTask* task); void CreateAsyncTask(int socket_handle, long long guild_id, AsyncGuildTask* task);

View File

@ -67,8 +67,11 @@ void HandlerMgr::RegisterNetMsgHandlers()
RegisterNetMsgHandler(&imcmsghandler, &PlayerMgr::_SS_IM_RandomUsersRequest); RegisterNetMsgHandler(&imcmsghandler, &PlayerMgr::_SS_IM_RandomUsersRequest);
RegisterNetMsgHandler(&imcmsghandler, &PlayerMgr::_SS_IM_GuildMemberQuitRequest); RegisterNetMsgHandler(&imcmsghandler, &PlayerMgr::_SS_IM_GuildMemberQuitRequest);
RegisterNetMsgHandler(&imcmsghandler, &PlayerMgr::_SS_IM_GuildMemberUpdateRequest); RegisterNetMsgHandler(&imcmsghandler, &PlayerMgr::_SS_IM_GuildMemberUpdateRequest);
RegisterNetMsgHandler(&imcmsghandler, &PlayerMgr::_SS_GS_QueryGuildUserOnlineState);
RegisterNetMsgHandler(&imcmsghandler, &GuildMgr::_SS_IM_ForwardGuildCMMsg); RegisterNetMsgHandler(&imcmsghandler, &GuildMgr::_SS_IM_ForwardGuildCMMsg);
RegisterNetMsgHandler(&imcmsghandler, &GuildMgr::_SS_IM_RefeshGuildMemberInfo);
RegisterNetMsgHandler(&imcmsghandler, &GuildMgr::_SS_IM_PushGuildUserOnlineState);
RegisterNetMsgHandler(&wsmsghandler, &WSListener::_SS_Ping); RegisterNetMsgHandler(&wsmsghandler, &WSListener::_SS_Ping);

View File

@ -1159,6 +1159,15 @@ void Player::ForwardGuildCMMsg(f8::MsgHdr& hdr, long long guild_id)
msg); msg);
} }
void Player::SendGSMsg(int msgid, ::google::protobuf::Message& msg)
{
if (GuildId() != 0) {
SyncHelper::Instance()->SendIMConnMsg(JsonDataMgr::Instance()->GetIMInstanceId(GuildId()),
msgid,
msg);
}
}
void Player::FillMFUserInfo(cs::MFUserInfo* user_info) void Player::FillMFUserInfo(cs::MFUserInfo* user_info)
{ {
TypeConvert::Convert(myself.base_data, *(user_info->mutable_base_data())); TypeConvert::Convert(myself.base_data, *(user_info->mutable_base_data()));
@ -1322,6 +1331,7 @@ void Player::NotifyOnline()
} }
SendSSMsg(myself, msg); SendSSMsg(myself, msg);
} }
SyncGuildMemberInfo();
} }
void Player::NotifyOffline() void Player::NotifyOffline()
@ -1329,6 +1339,7 @@ void Player::NotifyOffline()
ss::SS_IM_OnUserOffline msg; ss::SS_IM_OnUserOffline msg;
msg.add_account_ids(AccountId()); msg.add_account_ids(AccountId());
SendSSMsg(myself, msg); SendSSMsg(myself, msg);
SyncGuildMemberInfo();
} }
void Player::OnDataVersion1Change() void Player::OnDataVersion1Change()
@ -1966,3 +1977,10 @@ void Player::InternalRemoveFriend(const std::string& account_id, bool need_sync,
MarkDirty(); MarkDirty();
} }
} }
void Player::SyncGuildMemberInfo()
{
ss::SS_IM_RefeshGuildMemberInfo msg;
FillIMMsgConext(msg.mutable_context());
SendGSMsg(msg);
}

View File

@ -69,6 +69,13 @@ class Player
} }
} }
template <typename T>
void SendGSMsg(T& msg)
{
static int msgid = f8::Net_GetMessageId(msg);
SendGSMsg(msgid, msg);
}
void _CMPing(f8::MsgHdr& hdr, const cs::CMPing& msg); void _CMPing(f8::MsgHdr& hdr, const cs::CMPing& msg);
void _CMUpdateUserInfo(f8::MsgHdr& hdr, const cs::CMUpdateUserInfo& msg); void _CMUpdateUserInfo(f8::MsgHdr& hdr, const cs::CMUpdateUserInfo& msg);
void _CMUpdateTempCustomData(f8::MsgHdr& hdr, const cs::CMUpdateTempCustomData& msg); void _CMUpdateTempCustomData(f8::MsgHdr& hdr, const cs::CMUpdateTempCustomData& msg);
@ -142,6 +149,7 @@ private:
void FillBlackList(::google::protobuf::RepeatedPtrField< ::cs::MFUserInfo >* black_list); void FillBlackList(::google::protobuf::RepeatedPtrField< ::cs::MFUserInfo >* black_list);
void ForwardGroupCMMsg(f8::MsgHdr& hdr, long long hash_code); void ForwardGroupCMMsg(f8::MsgHdr& hdr, long long hash_code);
void ForwardGuildCMMsg(f8::MsgHdr& hdr, long long guild_id); void ForwardGuildCMMsg(f8::MsgHdr& hdr, long long guild_id);
void SendGSMsg(int msgid, ::google::protobuf::Message& msg);
void FillApplyList(const cs::MFPaging& paging, cs::SMFriendApplyList& respmsg); void FillApplyList(const cs::MFPaging& paging, cs::SMFriendApplyList& respmsg);
void MarkDirty(); void MarkDirty();
void OnDataVersion1Change(); void OnDataVersion1Change();
@ -174,6 +182,7 @@ private:
void QueryUserFromDB(); void QueryUserFromDB();
void ShowErrorMsg(const std::string& msg); void ShowErrorMsg(const std::string& msg);
void InternalRemoveFriend(const std::string& account_id, bool need_sync, bool auto_delete); void InternalRemoveFriend(const std::string& account_id, bool need_sync, bool auto_delete);
void SyncGuildMemberInfo();
private: private:
bool dirty_ = false; bool dirty_ = false;

View File

@ -247,6 +247,11 @@ void PlayerMgr::_SS_IM_UpdateUserInfo(f8::MsgHdr& hdr, const ss::SS_IM_UpdateUse
} }
} }
void PlayerMgr::_SS_GS_QueryGuildUserOnlineState(f8::MsgHdr& hdr, const ss::SS_GS_QueryGuildUserOnlineState& msg)
{
}
void PlayerMgr::_CMLoginOld(f8::MsgHdr& hdr, const cs::CMLoginOld& msg) void PlayerMgr::_CMLoginOld(f8::MsgHdr& hdr, const cs::CMLoginOld& msg)
{ {
cs::CMLogin new_msg; cs::CMLogin new_msg;
@ -625,6 +630,7 @@ void PlayerMgr::OnClientSocketDisconnect(int socket_handle)
Player* hum = GetPlayerBySocket(socket_handle); Player* hum = GetPlayerBySocket(socket_handle);
if (hum) { if (hum) {
GameLog::Instance()->Logout(hum); GameLog::Instance()->Logout(hum);
hum->myself.base_data.online = false;
hum->NotifyOffline(); hum->NotifyOffline();
hum->UnInit(); hum->UnInit();
socket_hash_.erase(socket_handle); socket_hash_.erase(socket_handle);

View File

@ -26,6 +26,7 @@ namespace ss
class SS_IM_GuildMemberQuitResponse; class SS_IM_GuildMemberQuitResponse;
class SS_IM_GuildMemberUpdateRequest; class SS_IM_GuildMemberUpdateRequest;
class SS_IM_GuildMemberUpdateResponse; class SS_IM_GuildMemberUpdateResponse;
class SS_GS_QueryGuildUserOnlineState;
} }
class Player; class Player;
@ -60,6 +61,8 @@ 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 _SS_GS_QueryGuildUserOnlineState(f8::MsgHdr& hdr, const ss::SS_GS_QueryGuildUserOnlineState& msg);
void _CMLoginOld(f8::MsgHdr& hdr, const cs::CMLoginOld& 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);

View File

@ -47,4 +47,7 @@ enum SSMessageId_e
_SS_IM_GuildMemberQuitResponse = 1032; _SS_IM_GuildMemberQuitResponse = 1032;
_SS_IM_GuildMemberUpdateRequest = 1033; _SS_IM_GuildMemberUpdateRequest = 1033;
_SS_IM_GuildMemberUpdateResponse = 1034; _SS_IM_GuildMemberUpdateResponse = 1034;
_SS_IM_RefeshGuildMemberInfo = 1035;
_SS_GS_QueryGuildUserOnlineState = 1036;
_SS_IM_PushGuildUserOnlineState = 1037;
} }

View File

@ -368,5 +368,5 @@ message SS_GS_QueryGuildUserOnlineState
message SS_IM_PushGuildUserOnlineState message SS_IM_PushGuildUserOnlineState
{ {
optional MFIMMsgConext context = 1; optional MFIMMsgConext context = 1;
repeated cs.MFUserInfo user_infos = 2; repeated string online_users = 2;
} }