createPlayerSessions method
This API works with the following fleet types: EC2, Anywhere, Container
Reserves open slots in a game session for a group of players. 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. To add a single player to a game session, use CreatePlayerSession
To create player sessions, specify a game session ID and a list of player IDs. Optionally, provide a set of player data for each player ID.
If successful, a slot is reserved in the game session for each player, and
new PlayerSession objects are returned with player session
IDs. Each player references their 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 players to. The value is always a full ARN in the following format:
arn:aws:gamelift:.
Parameter playerIds :
List of unique identifiers for the players to be added.
Parameter playerDataMap :
Map of string pairs, each specifying a player ID and a set of
developer-defined information related to the player. Amazon GameLift
Servers does not use this data, so it can be formatted as needed for use
in the game. Any player data strings for player IDs that are not included
in the PlayerIds parameter are ignored.
Implementation
Future<CreatePlayerSessionsOutput> createPlayerSessions({
required String gameSessionId,
required List<String> playerIds,
Map<String, String>? playerDataMap,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'GameLift.CreatePlayerSessions'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'GameSessionId': gameSessionId,
'PlayerIds': playerIds,
if (playerDataMap != null) 'PlayerDataMap': playerDataMap,
},
);
return CreatePlayerSessionsOutput.fromJson(jsonResponse.body);
}