diff --git a/server/imserver/dbengine.cc b/server/imserver/dbengine.cc index 7491f19..921f736 100644 --- a/server/imserver/dbengine.cc +++ b/server/imserver/dbengine.cc @@ -3,6 +3,7 @@ #include #include "dbengine.h" +#include "jsondatamgr.h" void DBEngine::Init() { @@ -60,7 +61,11 @@ a8::XObject DBEngine::GetConnInfo(const std::string& data) a8::XObject DBEngine::GetConnInfo(long long data) { - a8::XObject conn_info; + std::shared_ptr mysql_cluster_conf = JsonDataMgr::Instance()->GetMysqlClusterConf(); + if (mysql_cluster_conf->Size() <= 0) { + abort(); + } + a8::XObject conn_info = *(mysql_cluster_conf->At(data % mysql_cluster_conf->Size())); return conn_info; } diff --git a/server/imserver/jsondatamgr.cc b/server/imserver/jsondatamgr.cc index 09a36b0..83f92e7 100644 --- a/server/imserver/jsondatamgr.cc +++ b/server/imserver/jsondatamgr.cc @@ -40,6 +40,7 @@ void JsonDataMgr::Init() { work_path_, }); + mysql_cluster_json_.ReadFromFile(mysql_cluster_json_file); imserver_cluster_json_.ReadFromFile(imserver_cluster_json_file); masterserver_cluster_json_.ReadFromFile(masterserver_cluster_json_file); } @@ -61,3 +62,8 @@ std::shared_ptr JsonDataMgr::GetMasterServerClusterConf() { return std::make_shared(masterserver_cluster_json_); } + +std::shared_ptr JsonDataMgr::GetMysqlClusterConf() +{ + return std::make_shared(mysql_cluster_json_); +} diff --git a/server/imserver/jsondatamgr.h b/server/imserver/jsondatamgr.h index fab577d..5d7f7c4 100644 --- a/server/imserver/jsondatamgr.h +++ b/server/imserver/jsondatamgr.h @@ -12,6 +12,7 @@ class JsonDataMgr : public a8::Singleton std::shared_ptr GetConf(); std::shared_ptr GetMasterServerClusterConf(); + std::shared_ptr GetMysqlClusterConf(); private: std::string work_path_ = "../config"; diff --git a/server/imserver/playermgr.cc b/server/imserver/playermgr.cc index 78b900a..696953d 100644 --- a/server/imserver/playermgr.cc +++ b/server/imserver/playermgr.cc @@ -366,6 +366,12 @@ void PlayerMgr::AsyncLoginOnOk(const std::string& account_id, } pending_socket_hash_.erase(hdr->socket_handle); pending_account_hash_.erase(account_id); + { + cs::SMLogin respmsg; + respmsg.set_errcode(0); + respmsg.set_errmsg("ok"); + hum->SendMsg(respmsg); + } f8::MsgHdr::Destroy(hdr); } } diff --git a/server/masterserver/svrmgr.cc b/server/masterserver/svrmgr.cc index 1005366..302a2f6 100644 --- a/server/masterserver/svrmgr.cc +++ b/server/masterserver/svrmgr.cc @@ -17,7 +17,9 @@ void SvrMgr::Init() a8::XParams(), [] (const a8::XParams& param) { + #ifndef DEBUG SvrMgr::Instance()->ClearTimeOutNode(); + #endif }); }