Quote:Original post by Kylotan
Quote:Original post by @
consider MMORPG. lobby (central) server keeps all client connections mainly to prevent logging in the same account.
Of flip a flag in the database. There's no need for there to be one single server that holds every single connection. Checking for duplicate logins isn't a time-critical activity that can't afford a DB access. And you probably have to hit the DB to look up authentication/authorisation stuff anyway.
looks like error-prone approach:
client authorizes in lobby, lobby marks it as online in db and redirects it to zone server, client disconnects from lobby and crashes but is still marked as online one. the same happens when client moves between zones
to prevent this a sophisticated check if client is really online is required, e.g. to check all zones if this client is really alive
alternatively, to move a client ticket to zone server on redirection so it waits for this client and marks it offline in db when client haven't connected after some time. doesn't look robust too, timeouts are always a pain