/// <summary> /// Lists quality of service servers. /// </summary> public void ListQosServersForTitle(ListQosServersForTitleRequest request, Action <ListQosServersForTitleResponse> resultCallback, Action <PlayFabError> errorCallback, object customData = null, Dictionary <string, string> extraHeaders = null) { var context = (request == null ? null : request.AuthenticationContext) ?? authenticationContext; var callSettings = apiSettings ?? PlayFabSettings.staticSettings; PlayFabHttp.MakeApiCall("/MultiplayerServer/ListQosServersForTitle", request, AuthType.EntityToken, resultCallback, errorCallback, customData, extraHeaders, context, callSettings, this); }
private async Task <Dictionary <string, string> > GetQoSServerList() { if (_dataCenterMap?.Count > 0) { // If the dataCenterMap is already initialized, return return(_dataCenterMap); } var request = new ListQosServersForTitleRequest(); PlayFabResult <ListQosServersForTitleResponse> response = await multiplayerApi.ListQosServersForTitleAsync(request); if (response == null || response.Error != null) { return(null); } var dataCenterMap = new Dictionary <string, string>(response.Result.QosServers.Count); foreach (QosServer qosServer in response.Result.QosServers) { if (!string.IsNullOrEmpty(qosServer.Region)) { dataCenterMap[qosServer.Region] = qosServer.ServerUrl; } } return(_dataCenterMap = dataCenterMap); }
/// <summary> /// Lists quality of service servers. /// </summary> public void ListQosServersForTitle(ListQosServersForTitleRequest request, Action <ListQosServersForTitleResponse> resultCallback, Action <PlayFabError> errorCallback, object customData = null, Dictionary <string, string> extraHeaders = null) { var context = (request == null ? null : request.AuthenticationContext) ?? authenticationContext; var callSettings = apiSettings ?? PlayFabSettings.staticSettings; if (!context.IsEntityLoggedIn()) { throw new PlayFabException(PlayFabExceptionCode.NotLoggedIn, "Must be logged in to call this method"); } PlayFabHttp.MakeApiCall("/MultiplayerServer/ListQosServersForTitle", request, AuthType.EntityToken, resultCallback, errorCallback, customData, extraHeaders, context, callSettings, this); }
private async Task <Dictionary <string, string> > GetQoSServerList(bool listQosForTitle = false, bool chinaVer = false) { if (_dataCenterMap?.Count > 0) { // If the dataCenterMap is already initialized, return return(_dataCenterMap); } var response = new PlayFabResult <ListQosServersResponse>(); var dataCenterMap = new Dictionary <string, string>(); if (!chinaVer && listQosForTitle) { var request = new ListQosServersForTitleRequest(); PlayFabResult <ListQosServersForTitleResponse> res = await multiplayerApi.ListQosServersForTitleAsync(request); if (res == null || res.Error != null) { return(null); } dataCenterMap = new Dictionary <string, string>(res.Result.QosServers.Count); foreach (QosServer qosServer in res.Result.QosServers) { if (!string.IsNullOrEmpty(qosServer.Region)) { dataCenterMap[qosServer.Region] = qosServer.ServerUrl; } } return(_dataCenterMap = dataCenterMap); } else if (chinaVer) { //China Qos Servers response.Result = new ListQosServersResponse() { QosServers = new List <QosServer>() { new QosServer() { Region = "ChinaNorth2", ServerUrl = "pfmsqosprodcn.chinanorth2.cloudapp.chinacloudapi.cn" }, new QosServer() { Region = "ChinaEast2", ServerUrl = "pfmsqosprodcn.chinaeast2.cloudapp.chinacloudapi.cn" } } }; } else { var request = new ListQosServersRequest(); response = await multiplayerApi.ListQosServersAsync(request); } if (response == null || response.Error != null) { return(null); } dataCenterMap = new Dictionary <string, string>(response.Result.QosServers.Count); foreach (QosServer qosServer in response.Result.QosServers) { if (!string.IsNullOrEmpty(qosServer.Region)) { dataCenterMap[qosServer.Region] = qosServer.ServerUrl; } } // if (!chinaVer && !listQosForTitle) dataCenterMap = dataCenterMap.Where(x => x.Key == "EastAsia" || x.Key == "JapanWest").ToDictionary(t => t.Key, t => t.Value); //Specify some regions for testing return(_dataCenterMap = dataCenterMap); }