public Player(string customId, PlayFabApiSettings settings) { this.customId = customId; httpClient = new HttpClient(); context = new PlayFabAuthenticationContext(); clientApi = new PlayFabClientInstanceAPI(settings, context); mpApi = new PlayFabMultiplayerInstanceAPI(settings, context); }
public override void ClassSetUp() { clientApi = new PlayFabClientInstanceAPI(); authApi = new PlayFabAuthenticationInstanceAPI(clientApi.authenticationContext); dataApi = new PlayFabDataInstanceAPI(clientApi.authenticationContext); PlayFabSettings.staticPlayer.ForgetAllCredentials(); }
public override void ClassSetUp() { client1 = new PlayFabClientInstanceAPI(player1); client2 = new PlayFabClientInstanceAPI(player2); auth1 = new PlayFabAuthenticationInstanceAPI(player1); auth2 = new PlayFabAuthenticationInstanceAPI(player2); PlayFabSettings.staticPlayer.ForgetAllCredentials(); }
private static async Task Run(string titleId, string playerId, bool chinaVer, bool listQosForTitle, bool verbose) { PlayFabApiSettings settings = new PlayFabApiSettings() { TitleId = titleId }; PlayFabClientInstanceAPI clientApi = new PlayFabClientInstanceAPI(settings); // Login var loginRequest = new LoginWithCustomIDRequest() { CustomId = playerId, CreateAccount = true }; PlayFabResult <LoginResult> login = await clientApi.LoginWithCustomIDAsync(loginRequest); if (login.Error != null) { Console.WriteLine(login.Error.ErrorMessage); throw new Exception($"Login failed with HttpStatus={login.Error.HttpStatus}"); } Console.WriteLine($"Logged in player {login.Result.PlayFabId} (CustomId={playerId})"); Console.WriteLine(); // Measure QoS Stopwatch sw = Stopwatch.StartNew(); PlayFabSDKWrapper.QoS.PlayFabQosApi qosApi = new PlayFabSDKWrapper.QoS.PlayFabQosApi(settings, clientApi.authenticationContext); PlayFabSDKWrapper.QoS.QosResult qosResult = await qosApi.GetQosResultAsync(250, degreeOfParallelism : 4, pingsPerRegion : 10, listQosForTitle : listQosForTitle, chinaVer : chinaVer); if (qosResult.ErrorCode != 0) { Console.WriteLine(qosResult.ErrorMessage); throw new Exception($"QoS ping failed with ErrorCode={qosResult.ErrorCode}"); } Console.WriteLine($"Pinged QoS servers in {sw.ElapsedMilliseconds}ms with results:"); if (verbose) { string resultsStr = JsonConvert.SerializeObject(qosResult.RegionResults, Formatting.Indented); Console.WriteLine(resultsStr); } int timeouts = qosResult.RegionResults.Sum(x => x.NumTimeouts); Console.WriteLine(string.Join(Environment.NewLine, qosResult.RegionResults.Select(x => $"{x.Region} - {x.LatencyMs}ms"))); Console.WriteLine($"NumTimeouts={timeouts}"); Console.WriteLine(); Console.ReadKey(); }
public override void ClassSetUp() { titleData = TestTitleDataLoader.LoadTestTitleData(); PlayFabSettings.staticSettings.TitleId = titleData.titleId; client1 = new PlayFabClientInstanceAPI(player1); client2 = new PlayFabClientInstanceAPI(player2); auth1 = new PlayFabAuthenticationInstanceAPI(player1); auth2 = new PlayFabAuthenticationInstanceAPI(player2); PlayFabSettings.staticPlayer.ForgetAllCredentials(); }
public override void SetUp(UUnitTestContext testContext) { PlayFabSettings.staticSettings.ConnectionString = testTitleData.connectionString; authApi = new PlayFabAuthenticationInstanceAPI(PlayFabSettings.staticSettings, PlayFabSettings.staticPlayer); clientApi = new PlayFabClientInstanceAPI(PlayFabSettings.staticSettings, PlayFabSettings.staticPlayer); dataApi = new PlayFabDataInstanceAPI(PlayFabSettings.staticSettings, PlayFabSettings.staticPlayer); maxRetry = 1; if (!TITLE_INFO_SET) { testContext.Skip(); // We cannot do client tests if the titleId is not given } }
private static async Task Run(string titleId, string playerId, string buildId, bool verbose) { PlayFabApiSettings settings = new PlayFabApiSettings() { TitleId = titleId }; PlayFabClientInstanceAPI clientApi = new PlayFabClientInstanceAPI(settings); // Login var loginRequest = new LoginWithCustomIDRequest() { CustomId = playerId, CreateAccount = true }; PlayFabResult <LoginResult> login = await clientApi.LoginWithCustomIDAsync(loginRequest); if (login.Error != null) { Console.WriteLine(login.Error.ErrorMessage); throw new Exception($"Login failed with HttpStatus={login.Error.HttpStatus}"); } Console.WriteLine($"Logged in player {login.Result.PlayFabId} (CustomId={playerId})"); Console.WriteLine(); // Measure QoS Stopwatch sw = Stopwatch.StartNew(); PlayFabQosApi qosApi = new PlayFabQosApi(settings, clientApi.authenticationContext); QosResult qosResult = await qosApi.GetQosResultAsync(250, degreeOfParallelism : 4, pingsPerRegion : 10); if (qosResult.ErrorCode != 0) { Console.WriteLine(qosResult.ErrorMessage); throw new Exception($"QoS ping failed with ErrorCode={qosResult.ErrorCode}"); } Console.WriteLine($"Pinged QoS servers in {sw.ElapsedMilliseconds}ms with results:"); if (verbose) { string resultsStr = JsonConvert.SerializeObject(qosResult.RegionResults, Formatting.Indented); Console.WriteLine(resultsStr); } int timeouts = qosResult.RegionResults.Sum(x => x.NumTimeouts); Console.WriteLine(string.Join(Environment.NewLine, qosResult.RegionResults.Select(x => $"{x.Region} - {x.LatencyMs}ms"))); Console.WriteLine($"NumTimeouts={timeouts}"); Console.WriteLine(); // Allocate a server string sessionId = Guid.NewGuid().ToString(); List <string> preferredRegions = qosResult.RegionResults .Where(x => x.ErrorCode == (int)QosErrorCode.Success) .Select(x => x.Region).ToList(); PlayFabMultiplayerInstanceAPI mpApi = new PlayFabMultiplayerInstanceAPI(settings, clientApi.authenticationContext); PlayFabResult <RequestMultiplayerServerResponse> server = await mpApi.RequestMultiplayerServerAsync(new RequestMultiplayerServerRequest() { BuildId = buildId, PreferredRegions = preferredRegions, SessionId = sessionId } ); if (server.Error != null) { Console.WriteLine(server.Error.ErrorMessage); throw new Exception($"Allocation failed with HttpStatus={server.Error.HttpStatus}"); } string serverLoc = $"{server.Result.IPV4Address}:{server.Result.Ports[0].Num}"; Console.WriteLine($"Allocated server {serverLoc}"); // Issue Http request against the server using (HttpResponseMessage getResult = await HttpClient.GetAsync("http://" + serverLoc)) { getResult.EnsureSuccessStatusCode(); Console.WriteLine("Received response:"); string responseStr = await getResult.Content.ReadAsStringAsync(); Console.WriteLine(responseStr); Console.WriteLine(); } }