Client-to-dbserver: Difference between revisions

From OuroDev
(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 04: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.

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