コード例 #1
0
        /// <summary>
        /// Request a multiplayer server session. Accepts tokens for title and if game client accesss is enabled, allows game client
        /// to request a server with player entity token.
        /// </summary>
        public static void RequestMultiplayerServer(RequestMultiplayerServerRequest request, Action <RequestMultiplayerServerResponse> resultCallback, Action <PlayFabError> errorCallback, object customData = null, Dictionary <string, string> extraHeaders = null)
        {
            var context = (request == null ? null : request.AuthenticationContext) ?? PlayFabSettings.staticPlayer;


            PlayFabHttp.MakeApiCall("/MultiplayerServer/RequestMultiplayerServer", request, AuthType.EntityToken, resultCallback, errorCallback, customData, extraHeaders, context);
        }
コード例 #2
0
    /// <summary>
    /// Requests a multiplayer server from the backend.
    /// This will return an existing allocated server with the same session ID if one exists. Otherwise, a new server is allocated.
    /// </summary>
    /// <returns>
    /// Details of the server
    /// </returns>
    public async Task <RequestMultiplayerServerResponse> RequestMultiplayerServer(string buildID, List <AzureRegion> regions, string sessionCookie, string sessionID)
    {
        // We must be authenticated to make this call
        if (IsAuthenticated())
        {
            RequestMultiplayerServerRequest request = new RequestMultiplayerServerRequest();
            request.BuildId          = buildID;
            request.PreferredRegions = regions;
            request.SessionCookie    = sessionCookie;
            request.SessionId        = sessionID;

            var task = PlayFab.PlayFabMultiplayerAPI.RequestMultiplayerServerAsync(request);
            var resp = await task;

            bool hasError = CheckForError(resp);
            if (!hasError)
            {
                return(resp.Result);
            }
            else
            {
                throw new Exception(String.Format("Allocate failed with error: {0}", resp.Error.ErrorMessage));
            }
        }

        return(null);
    }
コード例 #3
0
        /// <summary>
        /// Request a multiplayer server session. Accepts tokens for title and if game client access is enabled, allows game client
        /// to request a server with player entity token.
        /// </summary>
        public void RequestMultiplayerServer(RequestMultiplayerServerRequest request, Action <RequestMultiplayerServerResponse> 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/RequestMultiplayerServer", request, AuthType.EntityToken, resultCallback, errorCallback, customData, extraHeaders, context, callSettings, this);
        }
コード例 #4
0
        public void RequestMultiplayerServer(string PlayFabId)
        {
            RequestMultiplayerServerRequest request = new RequestMultiplayerServerRequest();

            request.BuildId = PlayFabServerInstance.singleton.BuildIdKey;
            //TODO dont statically assign preferred regions
            request.PreferredRegions = new List <string> {
                "EastUs", "WestUs"
            };
            request.SessionId = Guid.NewGuid().ToString();
            PlayFabMultiplayerAPI.RequestMultiplayerServer(request, MultiplayerServerResponseSuccess, Error, null, null);
        }
コード例 #5
0
    private void requestMultiplayerServer()
    {
        RequestMultiplayerServerRequest requestData = new RequestMultiplayerServerRequest();

        requestData.BuildId          = "1ba80645-10ff-492d-93e1-b31f9e56c1d6";
        requestData.SessionId        = "c03b9f6a-a392-4e72-82c5-655ed6be4395";
        requestData.PreferredRegions = new List <AzureRegion>()
        {
            AzureRegion.NorthEurope
        };
        PlayFabMultiplayerAPI.RequestMultiplayerServer(requestData, OnRequestMultiplayerServer, OnRequestMultiplayerServerError);
    }
コード例 #6
0
    private void RequestMultiplayerServer()
    {
        Debug.Log("[ClientStartUp].RequestMultiplayerServer");
        RequestMultiplayerServerRequest requestData = new RequestMultiplayerServerRequest();

        requestData.BuildId          = configuration.buildId;
        requestData.SessionId        = System.Guid.NewGuid().ToString();
        requestData.PreferredRegions = new List <AzureRegion>()
        {
            AzureRegion.EastUs
        };
        PlayFabMultiplayerAPI.RequestMultiplayerServer(requestData, OnRequestMultiplayerServer, OnRequestMultiplayerServerError);
    }
コード例 #7
0
ファイル: FabAuthenCodeNLogin.cs プロジェクト: JK-IT/UnityGit
    private void RequestFabServerInfo()
    {
        H.klog1($"Requesting Fab server info", this.name);
        RequestMultiplayerServerRequest req = new RequestMultiplayerServerRequest();

        req.BuildId          = buildid;
        req.SessionId        = System.Guid.NewGuid().ToString();
        req.PreferredRegions = new List <string>()
        {
            "EastUs"
        };
        PlayFabMultiplayerAPI.RequestMultiplayerServer(req, ResRequestMultiplayer, ErrRequestMultiplayer);
    }
コード例 #8
0
    private void RequestMultiplayerServer()
    {
        RequestMultiplayerServerRequest requestData = new RequestMultiplayerServerRequest();

        requestData.BuildId          = settings.GetComponent <Settings>().buildId;
        requestData.PreferredRegions = new List <string>()
        {
            "NorthEurope"
        };
        requestData.SessionId = settings.GetComponent <Settings>().sessionId;
        if (requestData.SessionId.Equals(""))
        {
            requestData.SessionId = System.Guid.NewGuid().ToString();
        }

        PlayFabMultiplayerAPI.RequestMultiplayerServer(requestData, OnRequestMultiplayerServer, OnRequestMultiplayerServerError);
    }
コード例 #9
0
 /// <summary>
 /// Request a multiplayer server session. Accepts tokens for title and if game client accesss is enabled, allows game client
 /// to request a server with player entity token.
 /// </summary>
 public static void RequestMultiplayerServer(RequestMultiplayerServerRequest request, Action <RequestMultiplayerServerResponse> resultCallback, Action <PlayFabError> errorCallback, object customData = null, Dictionary <string, string> extraHeaders = null)
 {
     PlayFabHttp.MakeApiCall("/MultiplayerServer/RequestMultiplayerServer", request, AuthType.EntityToken, resultCallback, errorCallback, customData, extraHeaders);
 }
コード例 #10
0
        /// <summary>
        /// Request a multiplayer server session. Accepts tokens for title and if game client accesss is enabled, allows game client
        /// to request a server with player entity token.
        /// </summary>
        public static async Task <PlayFabResult <RequestMultiplayerServerResponse> > RequestMultiplayerServerAsync(RequestMultiplayerServerRequest request, object customData = null, Dictionary <string, string> extraHeaders = null)
        {
            if (PlayFabSettings.EntityToken == null)
            {
                throw new PlayFabException(PlayFabExceptionCode.EntityTokenNotSet, "Must call GetEntityToken before calling this method");
            }

            var httpResult = await PlayFabHttp.DoPost("/MultiplayerServer/RequestMultiplayerServer", request, "X-EntityToken", PlayFabSettings.EntityToken, extraHeaders);

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

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

            return(new PlayFabResult <RequestMultiplayerServerResponse> {
                Result = result, CustomData = customData
            });
        }