2.5 Status (presence)

W rozdziale tym poruszymy kwestie statusu dostępności danej osoby, czyli informacje o stanie kontaktu. Pakiety statusu możemy podzielić na trzy grupy, co ułatwi nam zrozumienie ich funkcjonalności i działania.
Tlen daje nam 7 stanów prezentacji statusu kontaktów, z czego 2 pochodzą z grupy statusów specjalnych, do których zaliczamy także zarządzanie subskrypcją, ale o tym w następnym rozdziale.

2.5.1 Stany podstawowe

Stany podstawowe prezentują status dostępności danego kontaktu.

Wyróżniamy 5 takich stanów:

typopis
availabledostępny
chatporozmawiajmy
dndjestem zajęty
awayzaraz wracam
xawrócę później

Konstrukcja pakietu służącego do ustawiania, bądź zmiany naszego stanu:

<presence>
    <show>available</show>
</presence>

Zawartość tagu show to typ stanu, jeden z 5, które wyżej przedstawiono w tabelce.

2.5.2 Stany dodatkowe (specjalne)

Dodatkowe 2 stany, o których wspomniałem w wstępie to invisible oraz unavailable.

Resztę statusów specjalnych, służących do zarządzania subskrypcją opisano w następnym rozdziale.

typopis
invisibleniewidoczny
unavailableniedostepny

Po ustawieniu stanu invisible, druga strona otrzyma zwykłą informacje o tym ze jesteśmy niedostępni, czyli unavailable. Dzięki temu praktycznie niemożliwe jest wykrycie osób ukrywających się pod tym stanem.

Pakiety specjalne zbudowane są następująco:

<presence type="invisible"/>

Parametr type określa rodzaj stanu specjalnego.

Warto zaznaczyć, ze wysłanie statusu o niedostępności jest równoznaczne z rozłączeniem się i zamknięciem aktywnej sesji.

2.5.3 Status opisowy

Status opisowy jest dodatkowym rozszerzeniem opisanych wyżej 7 stanów, który umożliwia dołączenie do stanu krótkiej wiadomości - opisu.

Budowa statusu opisowego jest prosta, należy dodać do wysyłanego pakietu presence dodatkowy tag status z opisem:

<presence>
    <show>dnd</show>
    <status>Opisuje+protok%F3%B3+Tlen.pl...</status>
</presence>

Powyższy pakiet ustawi stan "Jestem zajęty" z opisem "Opisuje protokół Tlen.pl...".

Zawartość taga status powinna być kodowana algorytem urlencode.

2.5.4 Powiadomienie o zmianie stanu

Żeby otrzymywać informacje o zmianie stanu jakiegoś kontaktu, musimy posiadać subskrypcję (autoryzacje) od danego kontaktu. O subskrypcji mówimy w następnym rozdziale, dlatego tu nie będziemy się w to zagłębiać.

Tak, więc, gdy któraś osoba z naszego rostera (listy kontaktów) zmieni swój stan zostaniemy o tym poinformowani.

Otrzymamy wtedy następujący pakiet:

<presence from="malcom@tlen.pl">
    <show>dnd</show>
    <status>Opisuje+protok%F3%B3+Tlen.pl...</status>
</presence>

Jak widzimy jego budowa jest identyczna jak pakietu służącego do ustawiania i zmiany stanu, wzbogaconego o atrybut from, określający osobę, która dokonała zmiany stanu.

Tę stronę ostatnio zmodyfikowano 12 lutego 2007 02:37:18