in Runtime/Core/ApiGatewayManagement/LocalGameAdapter.cs [24:71]
public async Task<GetGameConnectionResponse> GetGameConnection(GetGameConnectionRequest request)
{
try
{
Amazon.GameLift.Model.DescribeGameSessionsResponse describeGameSessionsResponse = await _amazonGameLiftWrapper.DescribeGameSessions(new Amazon.GameLift.Model.DescribeGameSessionsRequest
{
FleetId = _fleetId,
});
if (describeGameSessionsResponse.GameSessions.Any())
{
Amazon.GameLift.Model.GameSession oldestGameSession = describeGameSessionsResponse.GameSessions.First();
Amazon.GameLift.Model.CreatePlayerSessionResponse createPlayerSessionResponse = await _amazonGameLiftWrapper.CreatePlayerSession(new Amazon.GameLift.Model.CreatePlayerSessionRequest
{
GameSessionId = oldestGameSession.GameSessionId,
PlayerId = _playerIdPrefix + Guid.NewGuid().ToString()
});
Amazon.GameLift.Model.PlayerSession playerSession = createPlayerSessionResponse.PlayerSession;
var response = new GetGameConnectionResponse
{
IpAddress = playerSession.IpAddress,
DnsName = playerSession.DnsName,
Port = playerSession.Port.ToString(),
PlayerSessionId = playerSession.PlayerSessionId,
Ready = true
};
return Response.Ok(response);
}
return Response.Fail(new GetGameConnectionResponse
{
ErrorCode = ErrorCode.NoGameSessionWasFound
});
}
catch (Exception ex)
{
Logger.LogError(ex, ex.Message);
return Response.Fail(new GetGameConnectionResponse
{
ErrorCode = ErrorCode.UnknownError,
ErrorMessage = ex.Message
});
}
}