async private Task <GameSession> CreateGameSessionAsync() { Debug.Log("CreateGameSessionAsync"); var createGameSessionRequest = new Amazon.GameLift.Model.CreateGameSessionRequest(); createGameSessionRequest.FleetId = FleetId; // can also use AliasId createGameSessionRequest.CreatorId = _playerUuid; createGameSessionRequest.MaximumPlayerSessionCount = 2; // search for two player game Task <CreateGameSessionResponse> createGameSessionRequestTask = _amazonGameLiftClient.CreateGameSessionAsync(createGameSessionRequest); Debug.Log("after task createGameSessionRequestTask"); CreateGameSessionResponse createGameSessionResponse = await createGameSessionRequestTask; Debug.Log("after createGameSessionRequestTask"); string gameSessionId = createGameSessionResponse.GameSession != null ? createGameSessionResponse.GameSession.GameSessionId : "N/A"; Debug.Log((int)createGameSessionResponse.HttpStatusCode + " GAME SESSION CREATED: " + gameSessionId); return(createGameSessionResponse.GameSession); }
public Amazon.GameLift.Model.GameSession CreateGameSession() { try { var cgsreq = new Amazon.GameLift.Model.CreateGameSessionRequest(); cgsreq.AliasId = aliasId; cgsreq.CreatorId = playerId; cgsreq.MaximumPlayerSessionCount = 100; Amazon.GameLift.Model.CreateGameSessionResponse cgsres = aglc.CreateGameSession(cgsreq); string gsid = cgsres.GameSession != null ? cgsres.GameSession.GameSessionId : "N/A"; Debug.Log((int)cgsres.HttpStatusCode + " GAME SESSION CREATED: " + gsid); return(cgsres.GameSession); } catch (Amazon.GameLift.Model.FleetCapacityExceededException e) { Debug.Log(e.StatusCode.ToString() + " FleetCapacityExceededException: " + e.Message); return(null); } catch (Amazon.GameLift.Model.InvalidRequestException e) { Debug.Log(e.StatusCode.ToString() + " InvalidRequestException: " + e.Message); return(null); } }
private Amazon.GameLift.Model.CreateGameSessionResponse CallAWSServiceOperation(IAmazonGameLift client, Amazon.GameLift.Model.CreateGameSessionRequest request) { Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "Amazon GameLift Service", "CreateGameSession"); try { #if DESKTOP return(client.CreateGameSession(request)); #elif CORECLR return(client.CreateGameSessionAsync(request).GetAwaiter().GetResult()); #else #error "Unknown build edition" #endif } catch (AmazonServiceException exc) { var webException = exc.InnerException as System.Net.WebException; if (webException != null) { throw new Exception(Utils.Common.FormatNameResolutionFailureMessage(client.Config, webException.Message), webException); } throw; } }
public object Execute(ExecutorContext context) { var cmdletContext = context as CmdletContext; // create request var request = new Amazon.GameLift.Model.CreateGameSessionRequest(); if (cmdletContext.AliasId != null) { request.AliasId = cmdletContext.AliasId; } if (cmdletContext.CreatorId != null) { request.CreatorId = cmdletContext.CreatorId; } if (cmdletContext.FleetId != null) { request.FleetId = cmdletContext.FleetId; } if (cmdletContext.GameProperty != null) { request.GameProperties = cmdletContext.GameProperty; } if (cmdletContext.GameSessionData != null) { request.GameSessionData = cmdletContext.GameSessionData; } if (cmdletContext.GameSessionId != null) { request.GameSessionId = cmdletContext.GameSessionId; } if (cmdletContext.IdempotencyToken != null) { request.IdempotencyToken = cmdletContext.IdempotencyToken; } if (cmdletContext.Location != null) { request.Location = cmdletContext.Location; } if (cmdletContext.MaximumPlayerSessionCount != null) { request.MaximumPlayerSessionCount = cmdletContext.MaximumPlayerSessionCount.Value; } if (cmdletContext.Name != null) { request.Name = cmdletContext.Name; } CmdletOutput output; // issue call var client = Client ?? CreateClient(_CurrentCredentials, _RegionEndpoint); try { var response = CallAWSServiceOperation(client, request); object pipelineOutput = null; pipelineOutput = cmdletContext.Select(response, this); output = new CmdletOutput { PipelineOutput = pipelineOutput, ServiceResponse = response }; } catch (Exception e) { output = new CmdletOutput { ErrorResponse = e }; } return(output); }
/// <summary> /// Initiates the asynchronous execution of the CreateGameSession operation. /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the CreateGameSession operation on AmazonGameLiftClient.</param> /// <param name="callback">An AsyncCallback delegate that is invoked when the operation completes.</param> /// <param name="state">A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback /// procedure using the AsyncState property.</param> /// /// <returns>An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndCreateGameSession /// operation.</returns> public IAsyncResult BeginCreateGameSession(CreateGameSessionRequest request, AsyncCallback callback, object state) { var marshaller = new CreateGameSessionRequestMarshaller(); var unmarshaller = CreateGameSessionResponseUnmarshaller.Instance; return BeginInvoke<CreateGameSessionRequest>(request, marshaller, unmarshaller, callback, state); }
/// <summary> /// Creates a multiplayer game session for players. This action creates a game session /// record and assigns the new session to an instance in the specified fleet, which activates /// the server initialization process in your game server. A fleet must be in an ACTIVE /// state before a game session can be created for it. /// /// /// <para> /// To create a game session, specify either a fleet ID or an alias ID and indicate the /// maximum number of players the game session allows. You can also provide a name and /// a set of properties for your game (optional). If successful, a <a>GameSession</a> /// object is returned containing session properties, including an IP address. By default, /// newly created game sessions are set to accept adding any new players to the game session. /// Use <a>UpdateGameSession</a> to change the creation policy. /// </para> /// </summary> /// <param name="request">Container for the necessary parameters to execute the CreateGameSession service method.</param> /// /// <returns>The response from the CreateGameSession service method, as returned by GameLift.</returns> /// <exception cref="Amazon.GameLift.Model.ConflictException"> /// The requested operation would cause a conflict with the current state of a service /// resource associated with the request. Please resolve the conflict before retrying /// this request. /// </exception> /// <exception cref="Amazon.GameLift.Model.FleetCapacityExceededException"> /// The specified fleet has no available instances to fulfill a request to create a new /// game session. Such requests should only be retried once the fleet capacity has been /// increased. /// </exception> /// <exception cref="Amazon.GameLift.Model.InternalServiceException"> /// The service encountered an unrecoverable internal failure while processing the request. /// Such requests can be retried by clients, either immediately or after a back-off period. /// </exception> /// <exception cref="Amazon.GameLift.Model.InvalidFleetStatusException"> /// The requested operation would cause a conflict with the current state of a resource /// associated with the request and/or the fleet. Please resolve the conflict before retrying. /// </exception> /// <exception cref="Amazon.GameLift.Model.InvalidRequestException"> /// One or more parameters specified as part of the request are invalid. Please correct /// the invalid parameters before retrying. /// </exception> /// <exception cref="Amazon.GameLift.Model.NotFoundException"> /// A service resource associated with the request could not be found. Such requests should /// not be retried by clients. /// </exception> /// <exception cref="Amazon.GameLift.Model.TerminalRoutingStrategyException"> /// The service is unable to resolve the routing for a particular alias because it has /// a terminal <a>RoutingStrategy</a> associated with it. The message returned in this /// exception is the message defined in the TerminalRoutingStrategy itself. Such requests /// should only be retried if the routing strategy for the specified alias is modified. /// </exception> /// <exception cref="Amazon.GameLift.Model.UnauthorizedException"> /// The client failed authentication. Such requests should not be retried without valid /// authentication credentials. /// </exception> public CreateGameSessionResponse CreateGameSession(CreateGameSessionRequest request) { var marshaller = new CreateGameSessionRequestMarshaller(); var unmarshaller = CreateGameSessionResponseUnmarshaller.Instance; return Invoke<CreateGameSessionRequest,CreateGameSessionResponse>(request, marshaller, unmarshaller); }
/// <summary> /// Initiates the asynchronous execution of the CreateGameSession operation. /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the CreateGameSession operation.</param> /// <param name="cancellationToken"> /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// </param> /// <returns>The task object representing the asynchronous operation.</returns> public Task<CreateGameSessionResponse> CreateGameSessionAsync(CreateGameSessionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var marshaller = new CreateGameSessionRequestMarshaller(); var unmarshaller = CreateGameSessionResponseUnmarshaller.Instance; return InvokeAsync<CreateGameSessionRequest,CreateGameSessionResponse>(request, marshaller, unmarshaller, cancellationToken); }