I'm currently writing a multi-process network game server (one gatekeeper process which tells players what games are currently running and allows them to create and join games, and a process per game instance).
In which cases it would be useful for the gatekeeper to drop TCP connection to the client, and in which cases it should continue listening? E.g. should the gatekeeper close the connection after the client has successfully joined a game, or retrieved a list of games, or when an error occurs (such as there are no free slots in the game he's trying to join). Or should the connection close on a timeout? Thanks.