User:Www2/Development:Network:VSACCSPNG

From VsWiki
Jump to: navigation, search

This is the first draft for the next generation account server protocol.

Vega Srike ass protocall 0.1<DRAFT 1>
--------------------------------------------------------------------------------
01 Generall infomation
--------------------------------------------------------------------------------
Here foling a small overfeew about the layout and basic info about the packet.

PORT STAND ALONE:	9070 (can be chance)
PORT WEBSOCKETS:	80 (non encrypte) 443 (tls/ssl)
SSL/TLS ENABEL:		YES		
END OF PACKET MARK:	HEX:	0xDE 0xAD 0x1E 0xAF 
CLOSE CONECTION:	HEX:	0xDE 0xAD 0xB0 0x0B
PING PACKET:		HEX:	0xDB 0xAF 0xG1 0x07
DATA STREAM:		JSON COMPREST USING GZDEFATION SEE PHP DOCUMENTATION

--------------------------------------------------------------------------------
low level
--------------------------------------------------------------------------------
The low level data stream that is a comprest JSON packet string that end with a
4 byte mark (HEX: 0xDE 0xAD 0x1E 0xAF).

DATA 
	* Json datastream comprest with gzdeflate
	* end op packet mark (4 byts) (allwase 0xDE 0xAD 0x1E 0xAF)


LAYOUT OF THE DATAPACKET:
---------------------------------------------------------------
| DATA   ... (n byte string) |END OF PACKETMARK (4byte/32 bit)|
---------------------------------------------------------------

PING is a simpel comando that need send dyrely to the sender with out the 
prosing form the reseaver.

DATA
	* comando (4 byte)
	* id number (32 bit random int)
	* respons flag (1 bit) (only on responts)

LAYOUT OF THE PING PACKET
----------------------------------------------------------------------
| ping comand (4 byte) | ping_id (32 bit int) | respons flag (1 bit) |
----------------------------------------------------------------------

For closing the conncetion we use a 4 byte string (0xDE 0xAD 0xB0 0x0B)

DATA
	* CLOSE CONECTION singaal (4 bytes) (allwase 0xDE 0xAD 0xB0 0x0B)

LAYOUT OF CLOSE CONECTION PACKET
-------------------------------------
|  CLOSE CONECTION singaal (4 byte) |
-------------------------------------



--------------------------------------------------------------------------------
JSON DATA
--------------------------------------------------------------------------------

---------------------------------------
Login / logout
---------------------------------------

---------------
LOGIN (C->A)
---------------

send login request to the server
DATA:
	login (array)
		username (string)
		password (string)
---------------
LOGIN_ERROR A->C
---------------
The server encount a error and clost the connetion

	login_err (array)
		error_flag (string) (see section flags)
		mgs	(string) (optinal)

FLAGS
code	| Description
----------------------------------
U	| username/password error
BU	| User ban
BI	| IP ban

---------------
LOGIN_ACCEPT A->C
---------------

DATA:
	login_accept (array)
		charater (array)
			[n] (array) (can more than one)
				charater_id (int)
				name (string)
				credits (int)
				location (string)
				current_ship (string)
		ingame news (array)
			[n] (array) (can more than one)
				tittel (string)
				date (int) (unix time format)
				text (string) (html)
				attecment (string/base64) (gzipt data)

-----------------
SELECT CHARATER C->A
-----------------
DATA:
	char_celect (array)
		charate_id (int)
		
-----------------
DELETE CHARATER C->A
-----------------
DATA:
	char_delete (array)
		charate_id (int)

-----------------
DELETE CHARATER C->A
-----------------
DATA:
	char_delete_ok (bool) (return false on error else true)
	
-----------------
NEW CHARATER C->A
-----------------
FIXME

-----------------
SEND_CHARATER A->C
-----------------
---------------------------------------
chat and mail
---------------------------------------

-----------------
CHEAT_CHANNEL C->A
-----------------
DATA:
	cheat_channel (array)
		channel (string) (format is the same as IRC)
		text (string) (text is in bbcode)
		context (string) (see context flags)
CONTEXT FLAGS:
N	Normaal
W	Wisper
S	shout
M	Same as /me in IRC

------------------
CHEAT_PM C -> A
------------------
DATA:
	cheat_pm (array)
		charater_id (int)
		text (string)
		(context) (see context lags in CHEAT_CHANNEL C->A)

-----------------
CHEAT_CHANNEL A -> C
-----------------
DATA:
	cheat_channel (array)
		[n] (array)
			channel (string) (format is the same as IRC)
			charater_name (string)
			time_stamp (int) (unix time format)
			text (string) (text is in bbcode)
			context (string) (see context flags in CHEAT_CHANNEL C->A)

------------------
CHEAT_PM A -> C
------------------
DATA:
	cheat_pm (array)
		[n] array
			charater_name (string)
			text (string)
			time_stamp (int) (unix time format)
			(context) (see context lags in CHEAT_CHANNEL C->A)

------------------
SEND_PM_REQUEST C -> A
------------------
send a pm request to the server and the server awnser with a CHEAT_PM C -> A
mgs.

	cheat_pm (array)
		charater_name (string)
		text (string)
		(context) (see context lags in CHEAT_CHANNEL C->A)

------------------
MAIL_SEND C -> A
------------------
DATA:
	mail_send (array)
		send_to (array) (charater_name and can more than one)
			[n] (array)
				charater_name (string)
				flag (string) (the blags are C,CC,BCC)
		tittel (string)
		mgs (string)