Пример #1
0
        /// <summary>
        /// Lists quality of service servers.
        /// </summary>
        public static void ListQosServers(ListQosServersRequest request, Action <ListQosServersResponse> resultCallback, Action <PlayFabError> errorCallback, object customData = null, Dictionary <string, string> extraHeaders = null)
        {
            var context = (request == null ? null : request.AuthenticationContext) ?? PlayFabSettings.staticPlayer;


            PlayFabHttp.MakeApiCall("/MultiplayerServer/ListQosServers", request, AuthType.None, resultCallback, errorCallback, customData, extraHeaders, context);
        }
Пример #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 ListQosServersRequest();
            PlayFabResult <ListQosServersResponse> response = await multiplayerApi.ListQosServersAsync(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);
        }
Пример #3
0
        private async Task InitializeQoSServerList()
        {
            if (_dataCenterMap.Count > 0)
            {
                // If the dataCenterMap is already initialized, return
                return;
            }

            var request = new ListQosServersRequest();
            PlayFabResult <ListQosServersResponse> response = await multiplayerApi.ListQosServersAsync(request);

            if (response == null || response.Error != null)
            {
                return;
            }

            foreach (QosServer qosServer in response.Result.QosServers)
            {
                if (string.IsNullOrEmpty(qosServer.Region))
                {
                    continue;
                }

                _dataCenterMap[qosServer.Region] = qosServer.ServerUrl;
            }
        }
Пример #4
0
    public void GetQoSServers()
    {
        ListQosServersRequest request = new ListQosServersRequest();

        PlayFabMultiplayerAPI.ListQosServers(request, ListQoSServersResponseSuccess, ListQoSServersResponseError, null, null);
    }
Пример #5
0
 /// <summary>
 /// Lists quality of service servers.
 /// </summary>
 public static void ListQosServers(ListQosServersRequest request, Action <ListQosServersResponse> resultCallback, Action <PlayFabError> errorCallback, object customData = null, Dictionary <string, string> extraHeaders = null)
 {
     PlayFabHttp.MakeApiCall("/MultiplayerServer/ListQosServers", request, AuthType.None, resultCallback, errorCallback, customData, extraHeaders);
 }
Пример #6
0
        /// <summary>
        /// Lists quality of service servers.
        /// </summary>
        public static async Task <PlayFabResult <ListQosServersResponse> > ListQosServersAsync(ListQosServersRequest request, object customData = null, Dictionary <string, string> extraHeaders = null)
        {
            var httpResult = await PlayFabHttp.DoPost("/MultiplayerServer/ListQosServers", request, null, null, extraHeaders);

            if (httpResult is PlayFabError)
            {
                var error = (PlayFabError)httpResult;
                PlayFabSettings.GlobalErrorHandler?.Invoke(error);
                return(new PlayFabResult <ListQosServersResponse> {
                    Error = error, CustomData = customData
                });
            }

            var resultRawJson = (string)httpResult;
            var resultData    = PluginManager.GetPlugin <ISerializerPlugin>(PluginContract.PlayFab_Serializer).DeserializeObject <PlayFabJsonSuccess <ListQosServersResponse> >(resultRawJson);
            var result        = resultData.data;

            return(new PlayFabResult <ListQosServersResponse> {
                Result = result, CustomData = customData
            });
        }
Пример #7
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);
        }