Usando AWS re:Post, accetti AWS re:Post Termini di utilizzo

Does Gamelift always provide a unique ip, port pair for game session?

0

Hi, I use gamelift with my logic for creating game session. In my logic, send game session command first and get ip, port pair. And second, find previous fleet instance by ip-port pair in my DB. If there is no one, i save ip-port fair for prevent another session use that ip-port.

The reason I ask this question is because I often get duplicate values(i mean ip-port pair). Does Gamelift provide a unique ip, port pair for game session? If not, what happens to previous create game session commands? Just ignored?

posta 2 mesi fa87 visualizzazioni
1 Risposta
0
Risposta accettata

The way GameLift handles game session creation and the associated IP/port pairs is an important consideration.

Unique IP/Port Pairs: GameLift does not guarantee that every created game session will have a unique IP/port pair. This is because the IP/port pair is primarily determined by the underlying infrastructure and networking configurations, not directly by GameLift.

Previous Game Session Commands: When you create a new game session, GameLift will attempt to allocate a new IP/port pair for that session. However, if the previous game session is still active and holding onto the same IP/port, GameLift will reuse that same IP/port pair for the new game session.

Ignored Previous Commands: If the previous game session has already been terminated, but the IP/port pair is still in the process of being released back into the pool of available addresses, GameLift may still reuse that same IP/port for the new game session. In this case, the previous game session creation command would effectively be ignored.

To address the issue of duplicate IP/port pairs in your database, here are a few recommendations:

Implement Expiration Checks: When looking up the IP/port pair in your database, also check the last time the game session was active. If it's been a significant amount of time (e.g., a few minutes) since the session was active, you can assume the IP/port pair is now available and allow the new session to use it.

Use GameLift Session Metadata: GameLift provides session metadata that includes a unique session ID. You can store this session ID along with the IP/port pair in your database, and use the session ID as the primary identifier instead of just the IP/port pair.

Implement Retries: If you encounter a duplicate IP/port pair, you can try retrying the game session creation a few times. GameLift may be able to allocate a new IP/port pair on a subsequent attempt.

Consider Using a Queue-based Approach: Instead of immediately creating the game session, you can add the request to a queue and let GameLift manage the session creation. This can help you avoid the potential race conditions and duplicate IP/port pairs.

By understanding the underlying behavior of GameLift's IP/port pair allocation and implementing strategies to handle potential duplicates, you can improve the reliability and consistency of your game session management.

con risposta 2 mesi fa
  • Thank you for your answer! But can i ask one more question? If i use queue-based approach, gamelift guarantee unique ip/port pair?

  • I think I wrote the question wrong, so I'll add it. What I wanted to know is whether the ip/port pair returned by GameLift is available immediately and not from a session already in use.

Accesso non effettuato. Accedi per postare una risposta.

Una buona risposta soddisfa chiaramente la domanda, fornisce un feedback costruttivo e incoraggia la crescita professionale del richiedente.

Linee guida per rispondere alle domande