Protokół

Z Net47 2.0
Skocz do: nawigacji, wyszukiwania

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 komunikacji

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>
      • Właściwa odpowiedź:
        <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