createPlayerSession method
This API works with the following fleet types: EC2, Anywhere, Container
Reserves an open player slot in a game session for a player. New player
sessions can be created in any game session with an open slot that is in
ACTIVE status and has a player creation policy of
ACCEPT_ALL. You can add a group of players to a game session
with CreatePlayerSessions
.
To create a player session, specify a game session ID, player ID, and optionally a set of player data.
If successful, a slot is reserved in the game session for the player and a
new PlayerSessions object is returned with a player session
ID. The player references the player session ID when sending a connection
request to the game session, and the game server can use it to validate
the player reservation with the Amazon GameLift Servers service. Player
sessions cannot be updated.
The maximum number of players per game session is 200. It is not adjustable.
Related actions
May throw GameSessionFullException.
May throw InternalServiceException.
May throw InvalidGameSessionStatusException.
May throw InvalidRequestException.
May throw NotFoundException.
May throw TerminalRoutingStrategyException.
May throw UnauthorizedException.
Parameter gameSessionId :
An identifier for the game session that is unique across all regions to
add a player to. The value is always a full ARN in the following format:
arn:aws:gamelift:.
Parameter playerId :
A unique identifier for a player. Player IDs are developer-defined.
Parameter playerData :
Developer-defined information related to a player. Amazon GameLift Servers
does not use this data, so it can be formatted as needed for use in the
game.
Implementation
Future<CreatePlayerSessionOutput> createPlayerSession({
required String gameSessionId,
required String playerId,
String? playerData,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'GameLift.CreatePlayerSession'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'GameSessionId': gameSessionId,
'PlayerId': playerId,
if (playerData != null) 'PlayerData': playerData,
},
);
return CreatePlayerSessionOutput.fromJson(jsonResponse.body);
}