ss::SS_WSP_SocketDisconnect

This commit is contained in:
aozhiwei 2019-05-18 15:17:34 +08:00
parent 845a51eb5e
commit 62515235ca

View File

@ -14,6 +14,11 @@ void PlayerMgr::UnInit()
void PlayerMgr::_SS_WSP_SocketDisconnect(f8::MsgHdr& hdr, const ss::SS_WSP_SocketDisconnect& msg)
{
auto itr = socket_hash_.find(hdr.socket_handle);
if (itr != socket_hash_.end()) {
itr->second->socket_handle = 0;
socket_hash_.erase(itr);
}
}
int PlayerMgr::OnlineNum()
@ -51,5 +56,16 @@ Player* PlayerMgr::CreatePlayerByCMJoin(int socket, const cs::CMJoin& msg)
void PlayerMgr::OnClientDisconnect(a8::XParams& param)
{
int gg_socket = param.sender;
std::vector<int> socket_list;
for (auto& pair : socket_hash_) {
unsigned short parent_socket_handle = (pair.first >> 16) & 0xFFFF;
if (parent_socket_handle == gg_socket) {
socket_list.push_back(pair.first);
}
}
for (int socket_handle : socket_list) {
socket_hash_.erase(socket_handle);
}
}