1
This commit is contained in:
parent
31c67f0f28
commit
8dd18e5aa0
@ -16,7 +16,9 @@
|
|||||||
|
|
||||||
#include "framework/cpp/httpclientpool.h"
|
#include "framework/cpp/httpclientpool.h"
|
||||||
|
|
||||||
const int ROOM_NUM_LIMIT = 20;
|
const int ROOM_NUM_DOWN_LIMIT = 20;
|
||||||
|
const int ROOM_NUM_UP_LIMIT = 40;
|
||||||
|
const int HUM_NUM_DOWN_LIMIT = 500;
|
||||||
|
|
||||||
void RoomMgr::Init()
|
void RoomMgr::Init()
|
||||||
{
|
{
|
||||||
@ -50,7 +52,7 @@ void RoomMgr::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg)
|
|||||||
if (!hum_meta) {
|
if (!hum_meta) {
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
if (RoomNum() >= ROOM_NUM_LIMIT) {
|
if (IsLimitJoin()) {
|
||||||
{
|
{
|
||||||
cs::SMJoinedNotify notifymsg;
|
cs::SMJoinedNotify notifymsg;
|
||||||
notifymsg.set_error_code(2);
|
notifymsg.set_error_code(2);
|
||||||
@ -272,3 +274,9 @@ void RoomMgr::InstallReportStateTimer()
|
|||||||
&reportstate_timer_attacher_.timer_list_);
|
&reportstate_timer_attacher_.timer_list_);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool RoomMgr::IsLimitJoin()
|
||||||
|
{
|
||||||
|
return RoomNum() >= ROOM_NUM_UP_LIMIT ||
|
||||||
|
(RoomNum() >= ROOM_NUM_DOWN_LIMIT && App::Instance()->perf.alive_count >= HUM_NUM_DOWN_LIMIT);
|
||||||
|
}
|
||||||
|
@ -34,6 +34,7 @@ class RoomMgr : public a8::Singleton<RoomMgr>
|
|||||||
Room* GetJoinableRoom(const std::string& account_id);
|
Room* GetJoinableRoom(const std::string& account_id);
|
||||||
void ReportServerState(int instance_id, const std::string& host, int port);
|
void ReportServerState(int instance_id, const std::string& host, int port);
|
||||||
void FreeOverRoom(long long room_uuid);
|
void FreeOverRoom(long long room_uuid);
|
||||||
|
bool IsLimitJoin();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::map<long long, Room*> inactive_room_hash_;
|
std::map<long long, Room*> inactive_room_hash_;
|
||||||
|
@ -222,4 +222,5 @@ void GSMgr::ClearTimeOutNode()
|
|||||||
}
|
}
|
||||||
node_key_hash_.erase(node->key);
|
node_key_hash_.erase(node->key);
|
||||||
}
|
}
|
||||||
|
RearrangeNode();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user