/// MatchMaker.js
function getAvailableCirrusServer() {
// 若有闲置WebServer,则使用闲置Server
for (cirrusServer of cirrusServers.values()) {
if (cirrusServer.numConnectedClients === 0) {
return cirrusServer;
}
}
// 若没有闲置WebServer,则使用负载量较小的Server
let index = 0;
let objServer;
for (cirrusServer of cirrusServers.values()) {
if (index === 0) {
objServer = cirrusServer;
index++;
continue;
}
if (cirrusServer.numConnectedClients < objServer.numConnectedClients) {
objServer = cirrusServer;
}
}
return ((index === 0) ? undefined : objServer);
}
05-06
1820
06-08
1万+