Jabber/Ruszamy/Opis działania protokołu

Szybki start

edytuj

XMPP (Extensible Messaging and Presence Protocol) to protokół typu open source do przesyłania wiadomości błyskawicznych i informacji o obecności. Oto przewodnik szybkiego startu, który pomoże Ci rozpocząć pracę z XMPP:

  1. Wybierz klienta XMPP: Istnieje wiele klientów XMPP dostępnych dla różnych platform, takich jak Conversations (Android), Gajim (Windows, Linux i Mac) oraz Adium (Mac). Wybierz taki, który odpowiada Twoim potrzebom i zainstaluj go na swoim urządzeniu.
  2. Utwórz konto XMPP: XMPP używa nazwy użytkownika i systemu nazw domen. Możesz utworzyć konto XMPP za pośrednictwem publicznego serwera, takiego jak Jabber.org, lub konfigurując własny serwer. Po utworzeniu konta otrzymasz identyfikator JID (Jabber ID), który składa się z nazwy użytkownika, znaku @ oraz nazwy domeny (np. nazwa_użytkownika@jabber.org).
  3. Dodaj kontakty: XMPP działa poprzez dodanie kontaktów do Twojej listy kontaktów. Aby dodać kontakt, potrzebujesz jego JID. Możesz wyszukiwać kontakty za pomocą funkcji wyszukiwania w kliencie XMPP lub pytać znajomych o ich identyfikatory JID.
  4. Czat: Po dodaniu kontaktów do listy kontaktów możesz rozpocząć z nimi czat. Wystarczy dwukrotnie kliknąć nazwę kontaktu, aby otworzyć okno czatu. Wpisz wiadomość w polu wejściowym i naciśnij enter, aby ją wysłać. Wiadomości innych użytkowników pojawią się w oknie czatu.
  5. Informacje o obecności: XMPP zapewnia również informacje o obecności, które pokazują, czy kontakt jest online, offline, czy nieobecny. Informacje o Twojej własnej obecności można ustawić jako online, poza domem, nie przeszkadzać lub offline. Te informacje można wyświetlić na liście kontaktów.

Oto kilka podstawowych pojęć związanych z XMPP:

  1. Jabber ID (JID): JID to unikalny identyfikator użytkownika w sieci XMPP. Składa się z nazwy użytkownika i nazwy domeny oddzielonych symbolem @ oraz opcjonalnie identyfikatora zasobu oddzielonego symbolem /. Na przykład jan@przyklad.com lub jan@przyklad.com/dom.
  2. Obecność: Obecność odnosi się do statusu użytkownika, wskazując, czy jest on dostępny, nieobecny, offline lub zajęty. Jest transmitowany do innych użytkowników w sieci, umożliwiając im sprawdzenie dostępności użytkownika.
  3. Wiadomości błyskawiczne (IM): wiadomości błyskawiczne to metoda komunikacji w czasie rzeczywistym, która umożliwia użytkownikom natychmiastową wymianę wiadomości. XMPP obsługuje komunikatory internetowe, czat grupowy, przesyłanie plików oraz połączenia głosowe i wideo.
  4. Serwery: serwery XMPP są odpowiedzialne za kierowanie wiadomości między użytkownikami, przechowywanie i przekazywanie wiadomości, gdy użytkownik jest offline oraz zarządzanie uwierzytelnianiem i autoryzacją użytkowników.
  5. Klienci: Klienci XMPP to aplikacje, które pozwalają użytkownikom łączyć się z serwerem XMPP i komunikować się z innymi użytkownikami w sieci. Klienty mogą być oparte na sieci, komputerach stacjonarnych lub urządzeniach mobilnych.
  6. Zwrotki: Zwrotki to podstawowe jednostki komunikacji w XMPP. Istnieją trzy rodzaje zwrotek: strofy obecności, strofy wiadomości i strofy IQ (Info/Query).
  7. Listy: lista to lista kontaktów, które użytkownik ma na swoim koncie XMPP. Pozwala użytkownikom zarządzać swoimi kontaktami i przeglądać informacje o ich obecności.
  8. Rozszerzenia: XMPP jest rozszerzalny, co oznacza, że do protokołu można dodawać dodatkowe funkcje poprzez rozszerzenia lub XEP (protokoły rozszerzeń XMPP). XEP definiują nowe sekcje, typy komunikatów i inne funkcje, które mogą być implementowane przez serwery i klientów XMPP.

XMPP to elastyczny i rozszerzalny protokół, którego można używać w różnych aplikacjach do przesyłania wiadomości. Przy odrobinie praktyki szybko to opanujesz. Miłego czatowania!

Adresy i identyfikatory XMPP

edytuj

Na rysunku poniżej przedstawiono układ kilku serwerów z podłączonymi do nich klientami.

 
Schemat działania sieci XMPP

W tej sytuacji John jest podłączony do serwera jabberpl.org natomiast Sue do jabber.org. W jabberze możliwa jest sytuacja w w której jedna osoba łączy się z serwerem z wielu miejsc jednocześnie. Używa się do tego celu zasobów oraz ich priorytetów, ale o tym będzie później. Gdy john chce wysłać wiadomość do sue przechodzi ona przez serwer jabberpl.org potem ten serwer przesyła ją do serwera jabber.org i dopiero z tego drugiego serwera przesyłana jest ona do sue.

Zarządzanie obecnością i listą obecności

edytuj

zarządzanie frekwencją jest powszechnym przypadkiem użycia XMPP, szczególnie w scenariuszach czatów grupowych, w których użytkownicy muszą śledzić, kto jest obecny, a kto nieobecny. Oto kilka podstawowych pojęć związanych z obecnością i zarządzaniem frekwencją w XMPP:

S# ekcje obecności: Sekcje obecności służą do wskazywania stanu online użytkownika, w tym jego dostępności, komunikatu o stanie i innych metadanych. Sekcje obecności mogą być wysyłane przez klienta do serwera w celu wskazania statusu użytkownika lub przez serwer do klientów w celu powiadomienia ich o statusie innych użytkowników.

  1. Subskrypcja obecności: Subskrypcja obecności to mechanizm, za pomocą którego użytkownicy mogą subskrybować obecność innych użytkowników. Gdy użytkownik subskrybuje obecność innego użytkownika, otrzymuje aktualizacje dotyczące statusu online tego użytkownika.
  2. Priorytet obecności: Priorytet obecności to wartość wskazująca względne znaczenie informacji o obecności użytkownika. Użytkownicy mogą ustawić swój priorytet obecności, aby wskazać, że są dostępni na wielu urządzeniach lub że mają wyższy priorytet niż inni użytkownicy.
  3. MUC (Multi-User Chat): MUC to rozszerzenie protokołu dla XMPP, które umożliwia wielu użytkownikom udział w czacie grupowym. MUC obsługuje zarządzanie obecnością w oparciu o obecność, w którym użytkownicy mogą dołączać do pokoju czatu lub go opuszczać, a inni użytkownicy mogą zobaczyć swój status.
  4. Obłożenie pokoju: Obłożenie pokoju to lista użytkowników, którzy są obecnie obecni w pokoju rozmów. Użytkownicy pokoju są śledzeni przez serwer i mogą być wykorzystani do wdrożenia funkcji zarządzania obecnością, takich jak wyświetlanie listy aktualnie aktywnych użytkowników.
  5. Konfiguracja pokoju: Konfiguracja pokoju to zestaw ustawień definiujących zachowanie pokoju rozmów. Ustawienia konfiguracji pokoju mogą obejmować kontrolę dostępu, temat pokoju i historię pokoju.
  6. XEP-0045: XEP-0045 to oficjalny protokół rozszerzenia XMPP dla czatu dla wielu użytkowników. Definiuje składnię i semantykę zarządzania pokojami rozmów i uczestnikami oraz dostarcza wskazówek dotyczących wdrażania funkcji zarządzania obecnością w XMPP.

Dostarczanie i kierowanie wiadomości

edytuj

Dostarczanie i kierowanie wiadomości to podstawowe cechy protokołu XMPP. Oto kilka podstawowych pojęć związanych z dostarczaniem i kierowaniem wiadomości w XMPP:

  1. Sekcje wiadomości: Sekcje wiadomości są używane do wysyłania wiadomości pomiędzy klientami XMPP. Można ich używać do czatu w czasie rzeczywistym, czatu grupowego i innych scenariuszy przesyłania wiadomości. Sekcje wiadomości zawierają metadane, takie jak identyfikatory JID nadawcy i odbiorcy, a także treść wiadomości.
  2. Typy wiadomości: W XMPP istnieje kilka różnych typów sekcji wiadomości, w tym wiadomości na czacie, wiadomości na czacie grupowym i wiadomości systemowe. Każdy typ wiadomości ma swój własny format i zachowanie.
  3. JID: JID (Jabber ID) to unikalne identyfikatory dla użytkowników i serwerów XMPP. Składają się z nazwy użytkownika, nazwy domeny i opcjonalnego identyfikatora zasobu. Identyfikatory JID są używane do kierowania wiadomości między klientami i serwerami XMPP.
  4. Sekcje dotyczące obecności: Sekcje związane z obecnością służą do wskazywania statusu online użytkownika i informacji o jego obecności. Sekcje obecności mogą służyć do kierowania wiadomości na podstawie dostępności lub statusu użytkownika.
  5. Serwery XMPP: serwery XMPP są odpowiedzialne za kierowanie wiadomości między klientami oraz zarządzanie kontami użytkowników i informacjami o obecności. Serwery XMPP używają nazw domen i identyfikatorów JID do kierowania wiadomości między klientami a serwerami.
  6. Routing wiadomości: Serwery XMPP używają różnych algorytmów routingu wiadomości, aby dostarczać wiadomości do zamierzonych odbiorców. Algorytmy te mogą być oparte na informacjach o obecności, priorytecie wiadomości lub innych czynnikach.
  7. Archiwizacja wiadomości: Serwery XMPP mogą również udostępniać funkcje archiwizacji wiadomości, które pozwalają użytkownikom przechowywać i odzyskiwać wcześniejsze wiadomości. Archiwizacja wiadomości może służyć do zapewnienia zgodności, audytu lub do innych celów.
  8. XEP: Protokoły rozszerzeń XMPP (XEP) to standardowe rozszerzenia protokołu XMPP, które definiują nowe funkcje i zachowania. XEP mogą zawierać między innymi specyfikacje dotyczące dostarczania wiadomości, trasowania i archiwizacji.

Czat dla wielu użytkowników i komunikacja grupowa

edytuj

Czat dla wielu użytkowników (MUC) to rozszerzenie protokołu dla XMPP, które umożliwia wielu użytkownikom udział w czacie grupowym. MUC jest szeroko stosowany w aplikacjach komunikacyjnych opartych na XMPP i zapewnia kilka funkcji komunikacji grupowej. Oto kilka podstawowych pojęć związanych z MUC i komunikacją grupową w XMPP:

  1. Pokoje MUC: Pokój MUC to wirtualna przestrzeń, w której użytkownicy mogą komunikować się ze sobą w czasie rzeczywistym. Każdy pokój ma unikalny JID (Jabber ID) i może mieć różne ustawienia i konfiguracje.
  2. Obłożenie pokoju: Obłożenie pokoju odnosi się do listy użytkowników, którzy są aktualnie obecni w pokoju MUC. Serwer śledzi lokatorów i może udostępniać te informacje innym użytkownikom.
  3. Dołączanie do pokoju MUC: Aby dołączyć do pokoju MUC, użytkownik wysyła sekcję obecności do JID pokoju. Następnie serwer wysyła do użytkownika sekcję obecności, która zawiera informacje o innych osobach przebywających w pokoju.
  4. Obecność w MUC: W pokoju MUC sekcje obecności służą do wskazania innym użytkownikom obecności i statusu użytkownika. Sekcje obecności mogą zawierać informacje o dostępności użytkownika, komunikat o stanie i inne metadane.
  5. Sekcje wiadomości MUC: Sekcje wiadomości MUC są używane do wysyłania wiadomości na czacie grupowym. Można ich używać do wysyłania wiadomości do wszystkich osób w pokoju lub do określonych osób.
  6. Historia wiadomości MUC: Pokoje MUC mogą udostępniać historię wiadomości, które zostały wysłane do pokoju. Użytkownicy mogą odzyskać tę historię, aby nadrobić zaległości.
  7. Konfiguracja pokoju MUC: Pokoje MUC mogą mieć różne konfiguracje, w tym kontrolę dostępu, temat pokoju i ustawienia historii pokoju. Konfiguracje pokoi są zarządzane przez administratora pokoju i mogą być zmieniane za pomocą poleceń lub interfejsów XMPP.
  8. Afiliacje: pokoje MUC mogą mieć również afiliacje, które określają poziom dostępu użytkowników do pokoju. Istnieje kilka rodzajów przynależności, w tym właściciel, administrator, członek i wyrzutek.
  9. XEP-0045: XEP-0045 to oficjalny protokół rozszerzenia XMPP dla czatu dla wielu użytkowników. Definiuje składnię i semantykę zarządzania pokojami rozmów i uczestnikami oraz dostarcza wskazówek dotyczących implementacji funkcji komunikacji grupowej w XMPP.