public CheckBblStandby() { context = new PlayFabAuthenticationContext(); settings = new PlayFabApiSettings(); authApi = new PlayFabAuthenticationInstanceAPI(settings, context); multiplayerApi = new PlayFabMultiplayerInstanceAPI(settings, context); }
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 PlayFabQosApi(PlayFabApiSettings settings = null, PlayFabAuthenticationContext authContext = null, bool reportResults = true) { _authContext = authContext ?? PlayFabSettings.staticPlayer; multiplayerApi = new PlayFabMultiplayerInstanceAPI(settings, _authContext); eventsApi = new PlayFabEventsInstanceAPI(settings, _authContext); qosResultsReporter = SendSuccessfulQosResultsToPlayFab; _reportResults = reportResults; }
public async void TestForNotFoundWithImportantInfo(UUnitTestContext testContext) { var eReq = new AuthenticationModels.GetEntityTokenRequest(); eReq.Entity = new AuthenticationModels.EntityKey(); eReq.Entity.Type = "title"; eReq.Entity.Id = testTitleData.titleId; var multiApiSettings = new PlayFabApiSettings(); multiApiSettings.TitleId = testTitleData.titleId; multiApiSettings.DeveloperSecretKey = testTitleData.developerSecretKey; var authApi = new PlayFabAuthenticationInstanceAPI(multiApiSettings); var tokenTask = await authApi.GetEntityTokenAsync(eReq); testContext.IsNull(tokenTask.Error, "Failed to retrieve the Title Entity Token, check your playFabSettings.staticPlayer: " + PlayFabSettings.staticPlayer.EntityType); if (aliasId == "") { testContext.Fail("aliasId was blank, we will not get the expected failed NotFound response this test is asking for. Make sure testTitleData.json has a valid aliasId listed (check playfab multiplayer dashboard for your own valid aliasId)"); } MultiplayerModels.UpdateBuildAliasRequest updateBuildAliasRequest = new MultiplayerModels.UpdateBuildAliasRequest() { AliasId = aliasId, AliasName = "aliasName", AuthenticationContext = new PlayFab.PlayFabAuthenticationContext() { EntityToken = tokenTask.Result.EntityToken }, }; var multiplayerApi = new PlayFabMultiplayerInstanceAPI(multiApiSettings, updateBuildAliasRequest.AuthenticationContext); PlayFab.PlayFabResult <MultiplayerModels.BuildAliasDetailsResponse> res = await multiplayerApi.UpdateBuildAliasAsync(updateBuildAliasRequest); string response = PlayFab.PluginManager.GetPlugin <ISerializerPlugin>(PluginContract.PlayFab_Serializer).SerializeObject(res); if (response.Contains("MultiplayerServerNotFound") && res.Error.HttpCode == 404) { testContext.EndTest(UUnitFinishState.PASSED, null); } else { testContext.Fail("We called the Mutliplayer API expecting to not find anything, but we didn't detect this to be the error. Details: " + res.Error.GenerateErrorReport() + " and http code: " + res.Error.HttpCode); } }
protected override void BeginProcessing() { if (string.IsNullOrEmpty(PFTokenUtility.Instance.TitleId)) { throw new Exception("Run Set-PfTitle before running any cmdlet."); } Instance = new PlayFabMultiplayerInstanceAPI(new PlayFabApiSettings { ProductionEnvironmentUrl = ProductionEnvironmentUrl ?? PlayFabSettings.staticSettings.ProductionEnvironmentUrl, TitleId = PlayFabSettings.staticSettings.TitleId, VerticalName = PlayFabSettings.staticSettings.VerticalName, AdvertisingIdType = PlayFabSettings.staticSettings.AdvertisingIdType, AdvertisingIdValue = PlayFabSettings.staticSettings.AdvertisingIdValue, DeveloperSecretKey = PlayFabSettings.staticSettings.DeveloperSecretKey, DisableAdvertising = PlayFabSettings.staticSettings.DisableAdvertising }, GetAuthenticationContext()); }
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(); } }