Protokół

(Różnice między wersjami)
Skocz do: nawigacji, wyszukiwania
(Zwrotka)
Linia 32: Linia 32:
 
**Zamknięcie sekcji:<pre></Request></pre>
 
**Zamknięcie sekcji:<pre></Request></pre>
 
*Zamknięcie sekcji:<pre></Net47></pre>
 
*Zamknięcie sekcji:<pre></Net47></pre>
Zakończenie transakcji:<pre>//BEGINEND//\n</pre>>
+
Zakończenie transakcji:<pre>//BEGINEND//\n</pre>
 +
 
 +
== Przykład zapytania wraz z odpowiedzią ==
 +
<pre>
 +
//BEGIN//
 +
<?xml version="1.0" encoding="UTF-8"?>
 +
<Net47>
 +
<SessionID>32a1e3c5b537d00e39ef15db9c0b6839</SessionID>
 +
<Priority>3</Priority>
 +
<Term>Short</Term>
 +
<Request>
 +
<Type>AuthorizationLogout</Type>
 +
<AuthorizationLogout>
 +
<SessionID>32a1e3c5b537d00e39ef15db9c0b6839</SessionID>
 +
</AuthorizationLogout>
 +
</Request>
 +
</Net47>
 +
//BEGINEND//
 +
//BEGIN//
 +
<?xml version="1.0" encoding="UTF-8"?><Net47><Request><Type>QueueID</Type><QueueID><ID>5</ID></QueueID></Request></Net47>
 +
//BEGINEND//
 +
</pre>
  
 
[[Kategoria:Komunikacja]]
 
[[Kategoria:Komunikacja]]

Wersja z 14:16, 14 gru 2011

Spis treści

Informacje

Komunikacja odbywa się po sockecie szyfrowanym SSLv3 Domyślny port serwera Net47 to 2047 Jest to jedyna możliwość komunikacji z Net47

Przykładowe uzyskanie połączenia

openssl s_client -connect 127.0.0.1:2047 -ssl3

Struktura komunikacja

Struktura komunikacji opiera się o XML.

  • Początek transakcji oznaczamy
    //BEGIN//\n
    (\n jest znacznikiem klawisza [enter]) po rozpoczęciu sekcji BEGIN, podajemy zapytanie sformułowane w XML
  • Header:
    <?xml version="1.0" encoding="UTF-8"?>
  • Pierwsza sekcja w której zawarte będą wszystkie zadania (koniecznie nazwa Net47):
    <Net47>
    Zaczynamy właściwą transakcję (przykład logowania):
    • Podajemy SessionID (oczywiście przed zalogowaniem go nie posiadamy) [ char[32] ]
      	<SessionID></SessionID>
    • Sekcja Request, w niej zawierają się wszystkie zlecane zadania
      	<Request>
      • Zawartość Type definiuje iż będziemy spodziewać się sekcji o tej samej nazwie co zawartość (powtarzalne wielokrotnie), co odpowiada także typowi akcji:
        		<Type>Authorization</Type>
      • Zlecenie o nazwie wcześniej zdefiniowanego Type, jeśli pojawi się sekcja nie określona w Type, zostanie ona pominięta:
        		<Authorization>
        • Wartości wymagane dla autoryzacji:
          			<UserName>testowy</UserName>
          			<Password>testowy</Password>
      • Zamknięcie sekcji
        		</Authorization>
    • Zamknięcie sekcji
      	</Request>
  • Zamknięcie XML
    </Net47>
  • Jest jeszcze warunek ukończenia transakcji
    //BEGINEND//\n
    (\n jest znacznikiem klawisza [enter])

W tym momencie transakcja zostaje przetworzona, otrzymujemy [zwrotkę]#Zwrotka informującą nas o id kolejki zlecenia, lub w przypadku logowania otrzymamy od razu ID sesji

Zwrotka

Początek transakcji zwrotki jest oznaczony
//BEGIN//\n
  • Header:
    <?xml version="1.0" encoding="UTF-8"?>
  • Pierwsza sekcja w której zawarte będą wszystkie zadania:
    <Net47>
    • Request otwierający sekcje gdzie zawarte będą odpowiedzi:
      <Request>
      • Type realizuje tą samą funkcję jak przy zapytaniu:
        <Type>Authorization</Type><pre>
        
      • Właściwa odpowiedź:<pre><Authorization><SessionID>32a1e3c5b537d00e39ef15db9c0b6839</SessionID></Authorization>
    • Zamknięcie sekcji:
      </Request>
  • Zamknięcie sekcji:
    </Net47>
Zakończenie transakcji:
//BEGINEND//\n

Przykład zapytania wraz z odpowiedzią

//BEGIN//
<?xml version="1.0" encoding="UTF-8"?>
<Net47>
	<SessionID>32a1e3c5b537d00e39ef15db9c0b6839</SessionID>
	<Priority>3</Priority>
	<Term>Short</Term>
	<Request>
		<Type>AuthorizationLogout</Type>
		<AuthorizationLogout>
			<SessionID>32a1e3c5b537d00e39ef15db9c0b6839</SessionID>
		</AuthorizationLogout>
	</Request>
</Net47>
//BEGINEND//
//BEGIN//
<?xml version="1.0" encoding="UTF-8"?><Net47><Request><Type>QueueID</Type><QueueID><ID>5</ID></QueueID></Request></Net47>
//BEGINEND//
Osobiste
Przestrzenie nazw
Warianty
Działania
Nawigacja
Konfiguracja Systemu
Szablony
API
PostgreSQL
Narzędzia
MENU