Protokół
Z Net47 2.0
				
								
				(Różnice między wersjami)
				
																
				
				
								
				|  (→Zwrotka) | |||
| (Nie pokazano 22 wersji utworzonych przez jednego użytkownika) | |||
| Linia 7: | Linia 7: | ||
| <pre>openssl s_client -connect 127.0.0.1:2047 -ssl3</pre> | <pre>openssl s_client -connect 127.0.0.1:2047 -ssl3</pre> | ||
| − | == Struktura  | + | == Struktura komunikacji == | 
| Struktura komunikacji opiera się o XML. | Struktura komunikacji opiera się o XML. | ||
| *Początek transakcji oznaczamy<pre>//BEGIN//\n</pre>(\n jest znacznikiem klawisza [enter]) po rozpoczęciu sekcji BEGIN, podajemy zapytanie sformułowane w XML | *Początek transakcji oznaczamy<pre>//BEGIN//\n</pre>(\n jest znacznikiem klawisza [enter]) po rozpoczęciu sekcji BEGIN, podajemy zapytanie sformułowane w XML | ||
| *Header:<pre><?xml version="1.0" encoding="UTF-8"?></pre> | *Header:<pre><?xml version="1.0" encoding="UTF-8"?></pre> | ||
| *Pierwsza sekcja w której zawarte będą wszystkie zadania (koniecznie nazwa Net47):<pre><Net47></pre>Zaczynamy właściwą transakcję (przykład logowania): | *Pierwsza sekcja w której zawarte będą wszystkie zadania (koniecznie nazwa Net47):<pre><Net47></pre>Zaczynamy właściwą transakcję (przykład logowania): | ||
| − | **Podajemy SessionID (oczywiście przed zalogowaniem go nie posiadamy) [ char[32] ] | + | **Podajemy SessionID (oczywiście przed zalogowaniem go nie posiadamy) [ char[32] ]<pre>	<SessionID></SessionID></pre> | 
| − | + | **Sekcja Request, w niej zawierają się wszystkie zlecane zadania<pre>	<Request></pre> | |
| − | **Sekcja Request, w niej zawierają się wszystkie zlecane zadania<pre> | + | ***Zawartość Type definiuje iż będziemy spodziewać się sekcji o tej samej nazwie co zawartość (powtarzalne wielokrotnie), co odpowiada także typowi akcji:<pre>		<Type>Authorization</Type></pre> | 
| − | + | ***Zlecenie o nazwie wcześniej zdefiniowanego Type, jeśli pojawi się sekcja nie określona w Type, zostanie ona pominięta:<pre>		<Authorization></pre> | |
| − | ***Zawartość Type definiuje iż będziemy spodziewać się sekcji o tej samej nazwie co zawartość (powtarzalne wielokrotnie), co odpowiada także typowi akcji:<pre> | + | ****Wartości wymagane dla autoryzacji:<pre>			<UserName>testowy</UserName></pre><pre>			<Password>testowy</Password></pre> | 
| − | + | ***Zamknięcie sekcji<pre>		</Authorization></pre> | |
| − | ***Zlecenie o nazwie wcześniej zdefiniowanego Type, jeśli pojawi się sekcja nie określona w Type, zostanie ona pominięta:<pre> | + | **Zamknięcie sekcji<pre>	</Request></pre> | 
| − | + | *Zamknięcie XML<pre></Net47></pre> | |
| − | ****Wartości wymagane dla autoryzacji:<pre> | + | |
| − | + | ||
| − | + | ||
| − | ***Zamknięcie sekcji<pre> | + | |
| − | + | ||
| − | **Zamknięcie sekcji<pre> | + | |
| − | + | ||
| − | *Zamknięcie XML<pre> | + | |
| − | </Net47></pre> | + | |
| *Jest jeszcze warunek ukończenia transakcji<pre>//BEGINEND//\n</pre> (\n jest znacznikiem klawisza [enter]) | *Jest jeszcze warunek ukończenia transakcji<pre>//BEGINEND//\n</pre> (\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 | 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 | ||
| Linia 36: | Linia 27: | ||
| *Header:<pre><?xml version="1.0" encoding="UTF-8"?></pre> | *Header:<pre><?xml version="1.0" encoding="UTF-8"?></pre> | ||
| *Pierwsza sekcja w której zawarte będą wszystkie zadania:<pre><Net47></pre> | *Pierwsza sekcja w której zawarte będą wszystkie zadania:<pre><Net47></pre> | ||
| − | <Request><Type>Authorization</Type><Authorization><SessionID>32a1e3c5b537d00e39ef15db9c0b6839</SessionID></Authorization></Request> | + | **Request otwierający sekcje gdzie zawarte będą odpowiedzi:<pre><Request></pre> | 
| + | ***Type realizuje tą samą funkcję jak przy zapytaniu:<pre><Type>Authorization</Type></pre> | ||
| + | ***Właściwa odpowiedź:<pre><Authorization><SessionID>32a1e3c5b537d00e39ef15db9c0b6839</SessionID></Authorization></pre> | ||
| + | **Zamknięcie sekcji:<pre></Request></pre> | ||
| + | *Zamknięcie sekcji:<pre></Net47></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]] | ||
Aktualna wersja na dzień 15:29, 14 gru 2011
| Spis treści | 
[edytuj] Informacje
Komunikacja odbywa się po sockecie szyfrowanym SSLv3 Domyślny port serwera Net47 to 2047 Jest to jedyna możliwość komunikacji z Net47
[edytuj] Przykładowe uzyskanie połączenia
openssl s_client -connect 127.0.0.1:2047 -ssl3
[edytuj] 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> 
 
- 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
[edytuj] 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> 
 
- 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
[edytuj] 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//
