This commit is contained in:
aozhiwei 2019-06-02 19:28:20 +08:00
parent 4f72b8dba2
commit 285694826f
4 changed files with 21 additions and 1 deletions

View File

@ -14,7 +14,7 @@
#include "app.h" #include "app.h"
#include "handlermgr.h" #include "handlermgr.h"
#include "virtualclient.h" #include "virtualclientmgr.h"
#include "ss_msgid.pb.h" #include "ss_msgid.pb.h"
#include "ss_proto.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::TGLog::Instance()->Init(a8::Format(PROJ_NAME_FMT, {GAME_ID}), false);
f8::HttpClientPool::Instance()->Init(10); f8::HttpClientPool::Instance()->Init(10);
uuid.SetMachineId(instance_id); uuid.SetMachineId(instance_id);
VirtualClientMgr::Instance()->Init();
a8::UdpLog::Instance()->Info("robotserver starting instance_id:%d pid:%d", {instance_id, getpid()}); a8::UdpLog::Instance()->Info("robotserver starting instance_id:%d pid:%d", {instance_id, getpid()});
{ {
@ -110,6 +111,7 @@ void App::UnInit()
if (terminated) { if (terminated) {
return; return;
} }
VirtualClientMgr::Instance()->UnInit();
f8::HttpClientPool::Instance()->UnInit(); f8::HttpClientPool::Instance()->UnInit();
f8::MsgQueue::Instance()->UnInit(); f8::MsgQueue::Instance()->UnInit();
a8::Timer::Instance()->UnInit(); a8::Timer::Instance()->UnInit();
@ -208,6 +210,7 @@ void App::QuickExecute(int delta_time)
ProcessIMMsg(); ProcessIMMsg();
DispatchMsg(); DispatchMsg();
a8::Timer::Instance()->Update(); a8::Timer::Instance()->Update();
VirtualClientMgr::Instance()->Update();
} }
void App::SlowerExecute(int delta_time) void App::SlowerExecute(int delta_time)

View File

@ -5,6 +5,12 @@ namespace a8
class TcpClient; class TcpClient;
} }
enum VirtualClientState_e
{
VCS_Init,
VCS_Joined,
};
class VirtualClient class VirtualClient
{ {
public: public:
@ -24,6 +30,7 @@ class VirtualClient
void on_socketread(a8::TcpClient* sender, char* buf, unsigned int len); void on_socketread(a8::TcpClient* sender, char* buf, unsigned int len);
private: private:
VirtualClientState_e state_ = VCS_Init;
char *recv_buff_ = nullptr; char *recv_buff_ = nullptr;
unsigned int recv_bufflen_ = 0; unsigned int recv_bufflen_ = 0;

View File

@ -8,6 +8,7 @@ void VirtualClientMgr::Init()
{ {
for (int i = 1; i <= App::Instance()->test_param; ++i) { for (int i = 1; i <= App::Instance()->test_param; ++i) {
VirtualClient* client = new VirtualClient(); VirtualClient* client = new VirtualClient();
client->instance_id = i;
client->account = a8::Format("test%d", {i}); client->account = a8::Format("test%d", {i});
client->remote_ip = App::Instance()->wsp_host; client->remote_ip = App::Instance()->wsp_host;
client->remote_port = App::Instance()->wsp_port; 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();
}
}

View File

@ -17,6 +17,7 @@ class VirtualClientMgr : public a8::Singleton<VirtualClientMgr>
void Init(); void Init();
void UnInit(); void UnInit();
void Update();
private: private:
std::map<std::string, VirtualClient*> account_hash_; std::map<std::string, VirtualClient*> account_hash_;