Protokół
(Różnice między wersjami)
(→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>
- Wartości wymagane dla autoryzacji:
- Zamknięcie sekcji
</Authorization>
- Zawartość Type definiuje iż będziemy spodziewać się sekcji o tej samej nazwie co zawartość (powtarzalne wielokrotnie), co odpowiada także typowi akcji:
- Zamknięcie sekcji
</Request>
- Podajemy SessionID (oczywiście przed zalogowaniem go nie posiadamy) [ char[32] ]
- 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>
- Type realizuje tą samą funkcję jak przy zapytaniu:
- Zamknięcie sekcji:
</Request>
- Request otwierający sekcje gdzie zawarte będą odpowiedzi:
- Zamknięcie sekcji:
</Net47>
//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//