This commit is contained in:
aozhiwei 2019-06-02 19:42:14 +08:00
parent 285694826f
commit d3bc4bba6a
5 changed files with 25 additions and 1 deletions

View File

@ -8,6 +8,7 @@ enum SocketFrom_e
enum InnerMesssage_e
{
IM_VirtualClientDisconnect = 100,
IM_VirtualClientConnect,
IM_PlayerOffline,
IM_ExecGM,
IM_DBSConnDisconnect,

View File

@ -43,7 +43,7 @@ void VirtualClient::on_connect(a8::TcpClient* sender)
{
recv_bufflen_ = 0;
a8::UdpLog::Instance()->Info("target server connected", {});
App::Instance()->AddIMMsg(IM_VirtualClientDisconnect,
App::Instance()->AddIMMsg(IM_VirtualClientConnect,
a8::XParams()
.SetSender(instance_id)
);

View File

@ -23,6 +23,12 @@ class VirtualClient
void UnInit();
void Update();
template <typename T>
void SendMsg(T& msg)
{
static int msgid = f8::Net_GetMessageId(msg);
}
private:
void on_error(a8::TcpClient* sender, int errorId);
void on_connect(a8::TcpClient* sender);

View File

@ -13,6 +13,7 @@ void VirtualClientMgr::Init()
client->remote_ip = App::Instance()->wsp_host;
client->remote_port = App::Instance()->wsp_port;
account_hash_[client->account] = client;
instanceid_hash_[client->instance_id] = client;
client->Init();
}
}
@ -29,3 +30,14 @@ void VirtualClientMgr::Update()
}
}
VirtualClient* VirtualClientMgr::GetVirtualClientByAccount(const std::string& account)
{
auto itr = account_hash_.find(account);
return itr != account_hash_.end() ? itr->second: nullptr;
}
VirtualClient* VirtualClientMgr::GetVirtualClientByInstanceId(int instance_id)
{
auto itr = instanceid_hash_.find(instance_id);
return itr != instanceid_hash_.end() ? itr->second : nullptr;
}

View File

@ -19,6 +19,11 @@ class VirtualClientMgr : public a8::Singleton<VirtualClientMgr>
void UnInit();
void Update();
VirtualClient* GetVirtualClientByAccount(const std::string& account);
VirtualClient* GetVirtualClientByInstanceId(int instance_id);
private:
std::map<std::string, VirtualClient*> account_hash_;
std::map<int, VirtualClient*> instanceid_hash_;
};