diff --git a/server/gameserver/handlermgr.cc b/server/gameserver/handlermgr.cc index 0c3fdc5..dcf4192 100644 --- a/server/gameserver/handlermgr.cc +++ b/server/gameserver/handlermgr.cc @@ -82,6 +82,7 @@ void HandlerMgr::UnInit() void HandlerMgr::RegisterNetMsgHandlers() { RegisterNetMsgHandler(&ggmsghandler, &PlayerMgr::_SS_WSP_SocketDisconnect); + RegisterNetMsgHandler(&ggmsghandler, &PlayerMgr::_SS_Ping); RegisterNetMsgHandler(&ggmsghandler, &RoomMgr::_CMJoin); RegisterNetMsgHandler(&ggmsghandler, &Player::_CMMove); diff --git a/server/gameserver/playermgr.cc b/server/gameserver/playermgr.cc index f6172d2..985be4f 100644 --- a/server/gameserver/playermgr.cc +++ b/server/gameserver/playermgr.cc @@ -3,6 +3,7 @@ #include "playermgr.h" #include "player.h" #include "cs_proto.pb.h" +#include "ss_proto.pb.h" #include "room.h" #include "framework/cpp/utils.h" @@ -24,6 +25,12 @@ void PlayerMgr::_SS_WSP_SocketDisconnect(f8::MsgHdr& hdr, const ss::SS_WSP_Socke } } +void PlayerMgr::_SS_Ping(f8::MsgHdr& hdr, const ss::SS_Ping& msg) +{ + ss::SS_Pong respmsg; + GGListener::Instance()->SendToClient(hdr.socket_handle, 0, respmsg); +} + int PlayerMgr::OnlineNum() { return socket_hash_.size(); diff --git a/server/gameserver/playermgr.h b/server/gameserver/playermgr.h index 6bbbed6..6e5cd80 100644 --- a/server/gameserver/playermgr.h +++ b/server/gameserver/playermgr.h @@ -8,6 +8,7 @@ namespace cs namespace ss { class SS_WSP_SocketDisconnect; + class SS_Ping; } class Player; @@ -25,6 +26,7 @@ class PlayerMgr : public a8::Singleton void UnInit(); void _SS_WSP_SocketDisconnect(f8::MsgHdr& hdr, const ss::SS_WSP_SocketDisconnect& msg); + void _SS_Ping(f8::MsgHdr& hdr, const ss::SS_Ping& msg); int OnlineNum(); Player* GetPlayerBySocket(int socket);