修复masterserver节点分配问题
This commit is contained in:
parent
14f7e822d6
commit
f94c2f2feb
@ -68,6 +68,7 @@ void GSMgr::___GSReport(f8::JsonHttpRequest* request)
|
||||
itr->second.last_active_tick = a8::XGetTickCount();
|
||||
} else {
|
||||
GSNode gs;
|
||||
gs.key = key;
|
||||
gs.node_id = node_id;
|
||||
gs.instance_id = instance_id;
|
||||
gs.online_num = online_num;
|
||||
@ -87,25 +88,48 @@ void GSMgr::___GSReport(f8::JsonHttpRequest* request)
|
||||
|
||||
void GSMgr::___GSList(f8::JsonHttpRequest* request)
|
||||
{
|
||||
a8::MutableXObject* node_list = a8::MutableXObject::NewArray();
|
||||
{
|
||||
a8::MutableXObject* node_list = a8::MutableXObject::NewArray();
|
||||
|
||||
for (auto& pair : node_key_hash_) {
|
||||
a8::MutableXObject* node = a8::MutableXObject::NewObject();
|
||||
node->SetVal("node_id", pair.second.node_id);
|
||||
node->SetVal("instance_id", pair.second.instance_id);
|
||||
node->SetVal("room_num", pair.second.room_num);
|
||||
node->SetVal("online_num", pair.second.online_num);
|
||||
node->SetVal("ip", pair.second.ip);
|
||||
node->SetVal("port", pair.second.port);
|
||||
node->SetVal("servicing", pair.second.servicing);
|
||||
node_list->Push(*node);
|
||||
delete node;
|
||||
for (auto& pair : node_key_hash_) {
|
||||
a8::MutableXObject* node = a8::MutableXObject::NewObject();
|
||||
node->SetVal("node_id", pair.second.node_id);
|
||||
node->SetVal("instance_id", pair.second.instance_id);
|
||||
node->SetVal("room_num", pair.second.room_num);
|
||||
node->SetVal("online_num", pair.second.online_num);
|
||||
node->SetVal("ip", pair.second.ip);
|
||||
node->SetVal("port", pair.second.port);
|
||||
node->SetVal("servicing", pair.second.servicing);
|
||||
node_list->Push(*node);
|
||||
delete node;
|
||||
}
|
||||
|
||||
request->resp_xobj->SetVal("errcode", 0);
|
||||
request->resp_xobj->SetVal("errmsg", "");
|
||||
request->resp_xobj->SetVal("node_list", *node_list);
|
||||
delete node_list;
|
||||
}
|
||||
{
|
||||
a8::MutableXObject* node_list = a8::MutableXObject::NewArray();
|
||||
|
||||
request->resp_xobj->SetVal("errcode", 0);
|
||||
request->resp_xobj->SetVal("errmsg", "");
|
||||
request->resp_xobj->SetVal("node_list", *node_list);
|
||||
delete node_list;
|
||||
for (GSNode* gs_node : node_sorted_list_) {
|
||||
a8::MutableXObject* node = a8::MutableXObject::NewObject();
|
||||
node->SetVal("node_id", gs_node->node_id);
|
||||
node->SetVal("instance_id", gs_node->instance_id);
|
||||
node->SetVal("room_num", gs_node->room_num);
|
||||
node->SetVal("online_num", gs_node->online_num);
|
||||
node->SetVal("ip", gs_node->ip);
|
||||
node->SetVal("port", gs_node->port);
|
||||
node->SetVal("servicing", gs_node->servicing);
|
||||
node_list->Push(*node);
|
||||
delete node;
|
||||
}
|
||||
|
||||
request->resp_xobj->SetVal("errcode", 0);
|
||||
request->resp_xobj->SetVal("errmsg", "");
|
||||
request->resp_xobj->SetVal("sorted_node_list", *node_list);
|
||||
delete node_list;
|
||||
}
|
||||
}
|
||||
|
||||
GSNode* GSMgr::GetNodeByTeamId(const std::string& team_id)
|
||||
@ -135,11 +159,19 @@ void GSMgr::RearrangeNode()
|
||||
std::sort(node_sorted_list_.begin(), node_sorted_list_.end(),
|
||||
[] (const GSNode* a, const GSNode* b)
|
||||
{
|
||||
return
|
||||
!b->servicing ||
|
||||
a->online_num < b->online_num ||
|
||||
a->room_num < b->room_num ||
|
||||
a->node_idx > b->node_idx;
|
||||
if (a->servicing && b->servicing) {
|
||||
return
|
||||
a->online_num < b->online_num ||
|
||||
a->room_num < b->room_num ||
|
||||
a->node_idx > b->node_idx;
|
||||
}
|
||||
if (a->servicing) {
|
||||
return true;
|
||||
}
|
||||
if (b->servicing) {
|
||||
return false;
|
||||
}
|
||||
return a->node_idx > b->node_idx;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
@ -627,6 +627,7 @@ message CMJoin
|
||||
optional string session_id = 20; //session_id
|
||||
optional string from_appid = 21; //from_appid
|
||||
optional float atk_add = 22; //攻击加成
|
||||
optional string pre_settlement_info = 23; //透传game2001api预结算信息(为了本地结算用)
|
||||
}
|
||||
|
||||
//移动
|
||||
|
Loading…
x
Reference in New Issue
Block a user