示例#1
0
        /// <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);
        }
示例#2
0
        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);
        }
示例#4
0
        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);
        }