This commit is contained in:
aozhiwei 2020-07-01 15:34:12 +08:00
parent 9916740715
commit 3840d68f21
8 changed files with 33 additions and 12 deletions

View File

@ -108,24 +108,18 @@ void AsyncTaskMgr::CreateRecommandFriendTask(Player* hum)
{ {
RecommandFriendTask* task = new RecommandFriendTask(); RecommandFriendTask* task = new RecommandFriendTask();
{ {
#if 0 ss::SS_IM_RandomUsersRequest msg;
ss::SS_IM_QueryUserOnlineState msg;
hum->FillIMMsgConext(msg.mutable_context()); hum->FillIMMsgConext(msg.mutable_context());
for (auto& account_id : account_ids) { for (auto& account_id : hum->exclude_account_ids) {
msg.add_account_ids(account_id); msg.add_exclude_account_ids(account_id);
} }
hum->SendSSMsg(hum->myself, msg); hum->SendSSMsg(hum->myself, msg);
for (auto& account_id : account_ids) {
task->users[account_id] = false;
}
FillAsyncTaskContext(hum, &task->context, msg.context().seqid()); FillAsyncTaskContext(hum, &task->context, msg.context().seqid());
#endif
recommand_friend_tasks_[task->context.seqid] = task; recommand_friend_tasks_[task->context.seqid] = task;
} }
a8::Timer::Instance()->AddDeadLineTimer a8::Timer::Instance()->AddDeadLineTimer
( (
200, 500,
a8::XParams() a8::XParams()
.SetSender(task), .SetSender(task),
[] (const a8::XParams& param) [] (const a8::XParams& param)
@ -154,6 +148,11 @@ void AsyncTaskMgr::_SS_IM_PushUserOnlineState(f8::MsgHdr& hdr, const ss::SS_IM_P
} }
} }
void AsyncTaskMgr::_SS_IM_RandomUsersResponse(f8::MsgHdr& hdr, const ss::SS_IM_RandomUsersResponse& msg)
{
}
QueryUserStatusTask* AsyncTaskMgr::GetQueryUserStatusTask(long long seqid) QueryUserStatusTask* AsyncTaskMgr::GetQueryUserStatusTask(long long seqid)
{ {
auto itr = query_user_status_tasks_.find(seqid); auto itr = query_user_status_tasks_.find(seqid);

View File

@ -3,6 +3,7 @@
namespace ss namespace ss
{ {
class SS_IM_PushUserOnlineState; class SS_IM_PushUserOnlineState;
class SS_IM_RandomUsersResponse;
} }
struct QueryUserStatusTask; struct QueryUserStatusTask;
@ -23,6 +24,7 @@ public:
void CreateRecommandFriendTask(Player* hum); void CreateRecommandFriendTask(Player* hum);
void _SS_IM_PushUserOnlineState(f8::MsgHdr& hdr, const ss::SS_IM_PushUserOnlineState& msg); void _SS_IM_PushUserOnlineState(f8::MsgHdr& hdr, const ss::SS_IM_PushUserOnlineState& msg);
void _SS_IM_RandomUsersResponse(f8::MsgHdr& hdr, const ss::SS_IM_RandomUsersResponse& msg);
private: private:
QueryUserStatusTask* GetQueryUserStatusTask(long long seqid); QueryUserStatusTask* GetQueryUserStatusTask(long long seqid);

View File

@ -41,6 +41,7 @@ void HandlerMgr::RegisterNetMsgHandlers()
RegisterNetMsgHandler(&immsghandler, &SyncHelper::_SS_IM_FriendAgreeResponse); RegisterNetMsgHandler(&immsghandler, &SyncHelper::_SS_IM_FriendAgreeResponse);
RegisterNetMsgHandler(&immsghandler, &SyncHelper::_SS_IM_FriendDeleteResponse); RegisterNetMsgHandler(&immsghandler, &SyncHelper::_SS_IM_FriendDeleteResponse);
RegisterNetMsgHandler(&immsghandler, &PlayerMgr::_SS_IM_PushUserOnlineState); RegisterNetMsgHandler(&immsghandler, &PlayerMgr::_SS_IM_PushUserOnlineState);
RegisterNetMsgHandler(&immsghandler, &PlayerMgr::_SS_IM_RandomUsersResponse);
RegisterNetMsgHandler(&mscmsghandler, &PlayerMgr::_SS_MS_PushUserList); RegisterNetMsgHandler(&mscmsghandler, &PlayerMgr::_SS_MS_PushUserList);
RegisterNetMsgHandler(&mscmsghandler, &GroupMgr::_SS_MS_LoadGroup); RegisterNetMsgHandler(&mscmsghandler, &GroupMgr::_SS_MS_LoadGroup);
@ -58,7 +59,7 @@ void HandlerMgr::RegisterNetMsgHandlers()
RegisterNetMsgHandler(&imcmsghandler, &PlayerMgr::_SS_IM_OnUserOnline); RegisterNetMsgHandler(&imcmsghandler, &PlayerMgr::_SS_IM_OnUserOnline);
RegisterNetMsgHandler(&imcmsghandler, &PlayerMgr::_SS_IM_OnUserOffline); RegisterNetMsgHandler(&imcmsghandler, &PlayerMgr::_SS_IM_OnUserOffline);
RegisterNetMsgHandler(&imcmsghandler, &PlayerMgr::_SS_IM_QueryUserOnlineState); RegisterNetMsgHandler(&imcmsghandler, &PlayerMgr::_SS_IM_QueryUserOnlineState);
RegisterNetMsgHandler(&imcmsghandler, &PlayerMgr::_SS_IM_RandomUsersRequest);
RegisterNetMsgHandler(&wsmsghandler, &WSListener::_SS_Ping); RegisterNetMsgHandler(&wsmsghandler, &WSListener::_SS_Ping);

View File

@ -20,6 +20,7 @@ class Player
RoleData role_data; RoleData role_data;
long ip_saddr = 0; long ip_saddr = 0;
int account_registertime = 0; int account_registertime = 0;
std::set<std::string> exclude_account_ids;
public: public:
void Init(); void Init();

View File

@ -141,6 +141,16 @@ void PlayerMgr::_SS_IM_PushUserOnlineState(f8::MsgHdr& hdr, const ss::SS_IM_Push
} }
} }
void PlayerMgr::_SS_IM_RandomUsersRequest(f8::MsgHdr& hdr, const ss::SS_IM_RandomUsersRequest& msg)
{
}
void PlayerMgr::_SS_IM_RandomUsersResponse(f8::MsgHdr& hdr, const ss::SS_IM_RandomUsersResponse& msg)
{
AsyncTaskMgr::Instance()->_SS_IM_RandomUsersResponse(hdr, msg);
}
void PlayerMgr::_SS_IM_UpdateUserInfo(f8::MsgHdr& hdr, const ss::SS_IM_UpdateUserInfo& msg) void PlayerMgr::_SS_IM_UpdateUserInfo(f8::MsgHdr& hdr, const ss::SS_IM_UpdateUserInfo& msg)
{ {
auto itr = watch_players_.find(msg.user_info().base_data().account_id()); auto itr = watch_players_.find(msg.user_info().base_data().account_id());

View File

@ -19,6 +19,8 @@ namespace ss
class SS_IM_OnUserOffline; class SS_IM_OnUserOffline;
class SS_IM_QueryUserOnlineState; class SS_IM_QueryUserOnlineState;
class SS_IM_PushUserOnlineState; class SS_IM_PushUserOnlineState;
class SS_IM_RandomUsersRequest;
class SS_IM_RandomUsersResponse;
} }
class Player; class Player;
@ -46,6 +48,8 @@ class PlayerMgr : public a8::Singleton<PlayerMgr>
void _SS_IM_OnUserOffline(f8::MsgHdr& hdr, const ss::SS_IM_OnUserOffline& msg); void _SS_IM_OnUserOffline(f8::MsgHdr& hdr, const ss::SS_IM_OnUserOffline& msg);
void _SS_IM_QueryUserOnlineState(f8::MsgHdr& hdr, const ss::SS_IM_QueryUserOnlineState& msg); void _SS_IM_QueryUserOnlineState(f8::MsgHdr& hdr, const ss::SS_IM_QueryUserOnlineState& msg);
void _SS_IM_PushUserOnlineState(f8::MsgHdr& hdr, const ss::SS_IM_PushUserOnlineState& msg); void _SS_IM_PushUserOnlineState(f8::MsgHdr& hdr, const ss::SS_IM_PushUserOnlineState& msg);
void _SS_IM_RandomUsersRequest(f8::MsgHdr& hdr, const ss::SS_IM_RandomUsersRequest& msg);
void _SS_IM_RandomUsersResponse(f8::MsgHdr& hdr, const ss::SS_IM_RandomUsersResponse& msg);
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);

View File

@ -39,4 +39,6 @@ enum SSMessageId_e
_SS_IM_PushUserOnlineState = 1022; _SS_IM_PushUserOnlineState = 1022;
_SS_IM_OnUserOnline = 1023; _SS_IM_OnUserOnline = 1023;
_SS_IM_OnUserOffline = 1024; _SS_IM_OnUserOffline = 1024;
_SS_IM_RandomUsersRequest = 1025;
_SS_IM_RandomUsersResponse = 1026;
} }

View File

@ -261,10 +261,12 @@ message SS_IM_OnUserOffline
message SS_IM_RandomUsersRequest message SS_IM_RandomUsersRequest
{ {
optional MFIMMsgConext context = 1;
repeated string exclude_account_ids = 3; repeated string exclude_account_ids = 3;
} }
message SS_IM_RandomUsersResponse message SS_IM_RandomUsersResponse
{ {
repeated string exclude_account_ids = 3; optional MFIMMsgConext context = 1;
repeated cs.MFUserInfo user_infos = 2;
} }