Client-to-dbserver: Difference between revisions
Created page with "The game client connects to dbserver and uses the common Network protocol." |
No edit summary |
||
Line 1: | Line 1: | ||
The game client connects to dbserver and uses the common [[Network protocol]]. | The game client connects to port 7000 to find dbserver, and uses the common [[Network protocol]]. | ||
When a QueueServer is in use, then it listens on port 7000 and clients will connect there. Otherwise, dbserver listens on port 7000 and accepts client connections. | |||
== dbserver game client interface == | |||
When a game client disconnects from dbserver, then: | |||
* if the client is not logged in, dbserver sends AS_QUIT_GAME to authserver with reason 1 | |||
* if the client is logged in but does not have an entity loaded, dbserver sends AS_QUIT_GAME to authserver with reason 2 | |||
* if the client is loaded onto a MapServer, then the MapServer is sent DBSERVER_FORCE_LOGOUT with reason -1 | |||
* if the client is loaded but not connected to a MapServer, then an ACCOUNT_CLIENT_LOGOUT_ACCOUNT is sent to AccountServer and AS_QUIT_GAME is sent to authserver with reason 3 | |||
When dbserver receives a command on a link from a client, it first checks if the server is shutting down, and if it is then sends the client DBGAMESERVER_MSG with "ServerShutdown", and quits the client. | |||
When quitting a client: | |||
* If QueueServer is not used, dbserver closes the link | |||
* If QueueServer is used, dbserver sends QUEUESERVER_SVR_REMOVECLIENT to QueueServer for this client | |||
If the client is not logged in, then receiving any message other than DBGAMECLIENT_LOGIN will result in DBGAMESERVER_MSG with "NotLogged", and quits the client. | |||
When QueueServer is used, the protocol is modified by prefixing headers onto packets so that QueueServer can proxy them. See [[Dbserver-protocols#queue]] for details. | |||
== Commands, client to server == | |||
=== DBGAMECLIENT_LOGIN === | |||
=== DBGAMECLIENT_CHOOSE_PLAYER === | |||
=== DBGAMECLIENT_MAKE_PLAYER_ONLINE === | |||
=== DBGAMECLIENT_DELETE_PLAYER === | |||
=== DBGAMECLIENT_GET_COSTUME === | |||
=== DBGAMECLIENT_GET_POWERSET_NAMES === | |||
=== DBGAMECLIENT_ACCOUNTSERVER_UNSECURE_CMD === | |||
=== DBGAMECLIENT_ACCOUNTSERVER_CHARCOUNT === | |||
=== DBGAMECLIENT_ACCOUNTSERVER_CATALOG === | |||
=== DBGAMECLIENT_ACCOUNTSERVER_LOYALTY_BUY === | |||
=== DBGAMECLIENT_ACCOUNTSERVER_LOYALTY_REFUND === | |||
=== DBGAMECLIENT_SHARD_XFER_TOKEN_REDEEM === | |||
=== DBGAMECLIENT_RENAME_CHARACTER === | |||
=== DBGAMECLIENT_RENAME_TOKEN_REDEEM === | |||
=== DBGAMECLIENT_RESEND_PLAYERS === | |||
=== DBGAMECLIENT_CHECK_NAME === | |||
=== DBGAMECLIENT_SLOT_TOKEN_REDEEM === | |||
=== DBGAMECLIENT_UNLOCK_CHARACTER === | |||
=== DBGAMECLIENT_QUITCLIENT === | |||
=== DBGAMECLIENT_SIGN_NDA === | |||
=== DBGAMECLIENT_GET_PLAYNC_AUTH_KEY === | |||
=== DBGAMECLIENT_CAN_START_STATIC_MAP === | |||
=== DBGAMECLIENT_CHOOSE_VISITING_PLAYER === | |||
== Commands, server to client == | |||
=== DBGAMESERVER_SEND_PLAYERS === | |||
=== DBGAMESERVER_MSG === | |||
=== DBGAMESERVER_MAP_CONNECT === | |||
=== DBGAMESERVER_DELETE_OK === | |||
=== DBGAMESERVER_SEND_COSTUME === | |||
=== DBGAMESERVER_SEND_POWERSET_NAMES === | |||
=== DBGAMESERVER_ACCOUNTSERVER_CHARCOUNT === | |||
=== DBGAMESERVER_ACCOUNTSERVER_CATALOG === | |||
=== DBGAMESERVER_ACCOUNTSERVER_CLIENTAUTH === | |||
=== DBGAMESERVER_ACCOUNTSERVER_PLAYNC_AUTH_KEY === | |||
=== DBGAMESERVER_ACCOUNTSERVER_NOTIFYREQUEST === | |||
=== DBGAMESERVER_ACCOUNTSERVER_INVENTORY === | |||
=== DBGAMESERVER_ACCOUNTSERVER_UNAVAILABLE === | |||
=== DBGAMESERVER_CONPRINT === | |||
=== DBGAMESERVER_RENAME_RESPONSE === | |||
=== DBGAMESERVER_UNLOCK_CHARACTER_RESPONSE === | |||
=== DBGAMESERVER_CHECK_NAME_RESPONSE === | |||
=== DBGAMESERVER_LOGIN_DIALOG_RESPONSE === | |||
=== DBGAMESERVER_QUEUE_POSITION === | |||
=== DBGAMESERVER_CAN_START_STATIC_MAP_RESPONSE === |
Revision as of 03:07, 12 May 2019
The game client connects to port 7000 to find dbserver, and uses the common Network protocol.
When a QueueServer is in use, then it listens on port 7000 and clients will connect there. Otherwise, dbserver listens on port 7000 and accepts client connections.
dbserver game client interface
When a game client disconnects from dbserver, then:
- if the client is not logged in, dbserver sends AS_QUIT_GAME to authserver with reason 1
- if the client is logged in but does not have an entity loaded, dbserver sends AS_QUIT_GAME to authserver with reason 2
- if the client is loaded onto a MapServer, then the MapServer is sent DBSERVER_FORCE_LOGOUT with reason -1
- if the client is loaded but not connected to a MapServer, then an ACCOUNT_CLIENT_LOGOUT_ACCOUNT is sent to AccountServer and AS_QUIT_GAME is sent to authserver with reason 3
When dbserver receives a command on a link from a client, it first checks if the server is shutting down, and if it is then sends the client DBGAMESERVER_MSG with "ServerShutdown", and quits the client.
When quitting a client:
- If QueueServer is not used, dbserver closes the link
- If QueueServer is used, dbserver sends QUEUESERVER_SVR_REMOVECLIENT to QueueServer for this client
If the client is not logged in, then receiving any message other than DBGAMECLIENT_LOGIN will result in DBGAMESERVER_MSG with "NotLogged", and quits the client.
When QueueServer is used, the protocol is modified by prefixing headers onto packets so that QueueServer can proxy them. See Dbserver-protocols#queue for details.