Date of update: 8.10.2008
XML Socket Multiuser Server - eClever
write us
Novelties
RSS
Links of Interest
Http server

Http server v aplikaci eClever slouží k podpoře víceuživatelských aplikací, her a dalších aplikací, které je lepší řešit pomocí komunikace na bázi http protokolu, než pomocí socket serveru. V mnoha případech se bude socket server
a http server doplňovat. Http serveru můžeme posílat příkazy pomocí metod GET nebo POST. K volání http serveru je vždy nutné použít parametr action, ve kterém zadáváme funkci, kterou chceme od http serveru vykonat. Jednotlivé funkce budou vysvětleny v dalším textu. Tento http server není náhrada komerčních serverů pro www aplikace. Je to podpora socket serveru pro případ, kdy potřebujeme http komunikaci.

Volání http serveru pomocí metody GET
http://ip:port/?action=function&param1=value1&param2=value2....&paramX=valueX 

kde ip a port jsou parametry definované v eClever.config v sekci http-server/connections.

Pozn. Každé volání http serveru může mít mnoho parametrů. Pouze jeden parametr je povinný, a to parametr action.

Příklad
http://127.0.0.1:2722?action=cross-domain-policy.

Volání http serveru pomocí metody POST
http://ip:port/ 

U metody POST platí vše, co bylo řečeno o metodě GET, pouze parametry nejsou součástí adresy, ale musí se zadat způsobem, který odpovídá metodě POST.

Příklad
http://127.0.0.1:2722/

Všechny funkce volané pomocí metody GET si můžete vyzkoušet pomocí normálního internetového prohlížeče. U funkcí, které budou v parametrech vyžadovat zadávání speciálních znaků, jako např. xml dokumenty, nebude možné používat metodu GET, ale pouze metodu POST. Toto bude vždy zmíněno u každé funkce.

Vrácení chyby
Dojde-li k nějaké chybě v http serveru, vrátí http server xml dokument ve tvaru
<?xml version="1.0" encoding="utf-8"?>
<results>
         <status errorCode="-1"/>
</results>

kde errorCode je číslo chyby.

Chyby, které mohou vznikat při čtení souborù ze serveru.
errorCode     Popis chyby
-1   Http server nezná funkci zadanou v parametru action.
-2   Používáte neregistrovanou verzi XML Socket Multiuser Serveru - eClever
a http server umožní vykonat pouze 50 http příkazů.
-3   IP adresa klienta je uvedena v sekci black-list v eClever.config.
-4 IP adresa klienta není uvedena v sekci white-list v eClever.config.
Další chyby budou definovány vždy u příslušné funkce.

Práce se soubory
Funkce, které vracejí soubory umístěné na serveru, používají parametr file.

Příklad volání metodou GET
http://127.0.0.1:2722?action=gettxt&file=abc.txt&user=john&password=d27B48

Jako základní adresář použije http server adresář nastavený v atributu root v sekci http-server. Od tohoto adresáře se odvíjejí adresáře vnořené. Pokud je např. v atributu root nastaven adresář c:\eclever\http\ a v parametru file zadáme soubor chat\ekology\doc1.xml, bude http server hledat tento soubor v adresáři c:\eclever\http\chat\ekology\.

Pokud chceme soubory v určitém adresáři zabezpečit, musíme do tohoto adresáře umístit xml soubor, který má jméno eClever.auth a jeho struktura je:

<?xml version="1.0" encoding="utf-8"?>
<folder>
        <authentication user="abc" password="aa2"/>
</folder>

kde user a password jsou přístupové údaje pro daný adresář.

V parametrech http dotazu musíme zadat parametry user a password, které se musí shodovat se stejnojmennými parametry v souboru eClever.auth. Pokud v určitém adresáři není umístěn soubor eClever.auth, nemusíme v http dotazu parametry user a password používat.

Následující tabulka uvádí seznam chyb, které vrací http server klientovi při práci se soubory.
errorCode     Popis chyby
10   Adresář zadaný v eClever.config v atributu root neexistuje.
11   Soubor zadaný v parametru file neexistuje.
12   Přípona souboru neodpovídá volbě action.
13 Vrácený soubor má větší velikost, než která je povolena v atributu maxDocLength.
14 Adresář je zabezpečen souborem eClever.auth, ale v parametrech http dotazu nebyly zadány platné hodnoty pro user a password.


Action, které používá http server
cross-domain-policy   Funkce vrací xml dokument, který je zadán v sekci cross-domain-policy v eClever.config.
gettxt   Funkce vrací txt dokument.
getxml   Funkce vrací xml dokument.
getcss   Funkce vrací css dokument.
gethtm   Funkce vrací htm nebo html dokument.
getjpg   Funkce vrací jpg nebo jpeg soubor.
getgif   Funkce vrací gif soubor.
getpng   Funkce vrací png soubor.
getswf   Funkce vrací swf soubor.


Funkce cross-domain-policy
Funkce vrací xml dokument, který je zadán v sekci cross-domain-policy v eClever.config. Tato funkce se používá
v klientských aplikacích vytvořených ve Flashi.

Metody volání: GET, POST

Příklad volání funkce metodou GET
http://127.0.0.1:2722?action=cross-domain-policy 

-----------------------------------------------------------------------------------------------------------------------------------------------------------

Funkce gettxt
Funkce vrací txt dokument umístěný na serveru.

Metody volání: GET, POST

Příklad volání funkce metodou GET
http://127.0.0.1:2722?action=gettxt&file=abc.txt&user=john&password=d27B48

Pozn. User a password jsou nepovinné parametry

-----------------------------------------------------------------------------------------------------------------------------------------------------------

Funkce getxml
Funkce vrací  xml dokument umístěný na serveru.

Metody volání: GET, POST

Příklad volání funkce metodou GET
http://127.0.0.1:2722?action=getxml&file=abc.xml&user=john&password=d27B48

Pozn. User a password jsou nepovinné parametry

-----------------------------------------------------------------------------------------------------------------------------------------------------------

Funkce getcss
Funkce vrací css dokument umístěný na serveru.

Metody volání: GET, POST

Příklad volání funkce metodou GET
http://127.0.0.1:2722?action=getcss&file=abc.css&user=john&password=d27B48

Pozn. User a password jsou nepovinné parametry

-----------------------------------------------------------------------------------------------------------------------------------------------------------

Funkce gethtm
Funkce vrací  htm nebo html dokument umístěný na serveru.

Metody volání: GET, POST

Příklad volání funkce metodou GET
http://127.0.0.1:2722?action=gethtm&file=abc.htm&user=john&password=d27B48

Pozn. User a password jsou nepovinné parametry

-----------------------------------------------------------------------------------------------------------------------------------------------------------

Funkce getjpg
Funkce vrací  jpg nebo jpeg soubor umístěný na serveru.

Metody volání: GET, POST

Příklad volání funkce metodou GET
http://127.0.0.1:2722?action=getjpg&file=abc.jpg&user=john&password=d27B48

Pozn. User a password jsou nepovinné parametry

-----------------------------------------------------------------------------------------------------------------------------------------------------------

Funkce getgif
Funkce vrací  gif soubor umístěný na serveru.

Metody volání: GET, POST

Příklad volání funkce metodou GET
http://127.0.0.1:2722?action=getgif&file=abc.gif&user=john&password=d27B48

Pozn. User a password jsou nepovinné parametry

-----------------------------------------------------------------------------------------------------------------------------------------------------------

Funkce getpng
Funkce vrací png soubor umístěný na serveru.

Metody volání: GET, POST

Příklad volání funkce metodou GET
http://127.0.0.1:2722?action=getpng&file=abc.png&user=john&password=d27B48

Pozn. User a password jsou nepovinné parametry

-----------------------------------------------------------------------------------------------------------------------------------------------------------

Funkce getswf
Funkce vrací swf soubor umístěný na serveru.

Metody volání: GET, POST

Příklad volání funkce metodou GET
http://127.0.0.1:2722?action=getswf&file=abc.png&user=john&password=d27B48

Pozn. User a password jsou nepovinné parametry

-----------------------------------------------------------------------------------------------------------------------------------------------------------