diff --git a/server/robotserver/app.cc b/server/robotserver/app.cc index cf1d66d..fa6e569 100755 --- a/server/robotserver/app.cc +++ b/server/robotserver/app.cc @@ -14,7 +14,7 @@ #include "app.h" #include "handlermgr.h" -#include "virtualclient.h" +#include "virtualclientmgr.h" #include "ss_msgid.pb.h" #include "ss_proto.pb.h" @@ -89,6 +89,7 @@ void App::Init(int argc, char* argv[]) f8::TGLog::Instance()->Init(a8::Format(PROJ_NAME_FMT, {GAME_ID}), false); f8::HttpClientPool::Instance()->Init(10); uuid.SetMachineId(instance_id); + VirtualClientMgr::Instance()->Init(); a8::UdpLog::Instance()->Info("robotserver starting instance_id:%d pid:%d", {instance_id, getpid()}); { @@ -110,6 +111,7 @@ void App::UnInit() if (terminated) { return; } + VirtualClientMgr::Instance()->UnInit(); f8::HttpClientPool::Instance()->UnInit(); f8::MsgQueue::Instance()->UnInit(); a8::Timer::Instance()->UnInit(); @@ -208,6 +210,7 @@ void App::QuickExecute(int delta_time) ProcessIMMsg(); DispatchMsg(); a8::Timer::Instance()->Update(); + VirtualClientMgr::Instance()->Update(); } void App::SlowerExecute(int delta_time) diff --git a/server/robotserver/virtualclient.h b/server/robotserver/virtualclient.h index f030e5c..2309626 100644 --- a/server/robotserver/virtualclient.h +++ b/server/robotserver/virtualclient.h @@ -5,6 +5,12 @@ namespace a8 class TcpClient; } +enum VirtualClientState_e +{ + VCS_Init, + VCS_Joined, +}; + class VirtualClient { public: @@ -24,6 +30,7 @@ class VirtualClient void on_socketread(a8::TcpClient* sender, char* buf, unsigned int len); private: + VirtualClientState_e state_ = VCS_Init; char *recv_buff_ = nullptr; unsigned int recv_bufflen_ = 0; diff --git a/server/robotserver/virtualclientmgr.cc b/server/robotserver/virtualclientmgr.cc index f41c391..a749422 100644 --- a/server/robotserver/virtualclientmgr.cc +++ b/server/robotserver/virtualclientmgr.cc @@ -8,6 +8,7 @@ void VirtualClientMgr::Init() { for (int i = 1; i <= App::Instance()->test_param; ++i) { VirtualClient* client = new VirtualClient(); + client->instance_id = i; client->account = a8::Format("test%d", {i}); client->remote_ip = App::Instance()->wsp_host; client->remote_port = App::Instance()->wsp_port; @@ -20,3 +21,11 @@ void VirtualClientMgr::UnInit() { } + +void VirtualClientMgr::Update() +{ + for (auto& pair : account_hash_) { + pair.second->Update(); + } +} + diff --git a/server/robotserver/virtualclientmgr.h b/server/robotserver/virtualclientmgr.h index ee7ea4d..c2193a6 100644 --- a/server/robotserver/virtualclientmgr.h +++ b/server/robotserver/virtualclientmgr.h @@ -17,6 +17,7 @@ class VirtualClientMgr : public a8::Singleton void Init(); void UnInit(); + void Update(); private: std::map account_hash_;