Protokół Gadu-Gadu vs. XMPP/Jabber

08 sie

Od zawsze irytował mnie fanatyzm grupy zaawansowanych użytkowników komputerów, szczególnie wszelkie wojny Linux vs Windows, a ostatnio szczególnie protokół Jabber vs protokół GG.

Wszelkie komentarze na temat tego, że protokół GG jest beznadziejny, Jabber to jedyna słuszna droga są dla mnie przynajmniej dziwne – owszem: Jabber ma sporo zalet, głównie otwartość, możliwość rozszerzania, niezależność od jednej firmy… Od roku korzystam z Jabbera poprzez serwer aqq.eu i klienta AQQ 2. Z pewnych powodów nie zrezygnuję jednak nigdy z sieci Gadu-Gadu, pomijam fakt, że większość ludzi w Polsce nadal posiada tylko konto w słonecznym komunikatorze, bardziej chodzi mi o pewne braki względem tego 'złego’ protokołu GG.

Serwer AQQ.eu w sumie nie jest wzorem do naśladowania (przynajmniej wg. niektórych), zatem postanowiłem sprawdzić, czy to czego mi brakuje, znajdę na innym serwerze. Również i klienta zamieniłem na coś bardziej popularniejszego i swoje małe testy prowadziłem na klientach Psi i Tkabber. Zobaczmy, czego w Jabberze brakuje:

Przerwanie połączenia

Zdarzyło się Wam kiedyś utracić połączenie z serwerem, z powodu braku prądu, restartu systemu, braku połączenia z Internetem? Prosty test jaki wykonałem to zabicie procesu klienta sieci Jabber i klienta Gadu-Gadu. Przez jakiś czas w obu wypadkach jesteśmy jeszcze zalogowani. Gdy ktoś w tym czasie do nas napisze to:

  • Jabber.org zgubi wiadomość – po ponownym zalogowaniu nie dostaniemy żadnej wiadomości
  • Gadu-Gadu otrzyma wiadomość w większości wypadków (zdarzyło się mi raz, że wiadomość nie dotarła)

Dla mnie jest to o tyle ważne, że często korzystam z komunikatora w telefonie komórkowym. Gdy stracę zasięg, chociaż na chwilę, nie chcę tracić również wiadomości.

Ciekawsze jest coś innego: oba protokoły posiadają możliwość potwierdzenia tego, że wiadomość dotarła. Szkoda, że mimo iż serwer Jabber.org nie otrzymał potwierdzenia o dostarczeniu, nie zachował wiadomości jako wiadomość off-line.

Obrazki

Z tego co mi wiadomo, to Jabber nie pozwala na przesyłanie obrazów w oknie rozmowy. Nie jest to jednak jakieś ograniczenie: jak widać komunikator AQQ pozwala mimo wszystko na taki zabieg, ale stosując własną modyfikację protokołu, przez co reszta klientów nie jest w stanie zrozumieć transferów obrazków w ramach okna rozmowy. Mówiąc szczerze opcja bardzo mi się przydaje.

Rozmowy Głosowe i Video

Rozmów Video Jabber nie posiada i tyle (jak się mylę – zapraszam do komentowania z linkiem do dowodu). Co prawda sam z nich rzadko korzystam i jakbym się tak zastanowił, to pewnie liczba takich zdarzeń nie przekroczyła 'dziesiątki’, ale mimo to, protokół GG tutaj przewyższa Jabbera (pomijając jakość tych rozmów w GG).

Co do rozmów audio: sam korzystam z nich dość często, Psi również je posiada, aczkolwiek nie jestem pewny, czy jest to wynik istnienia zatwierdzonych rozszerzeń protokołu (nie znalazłem takowej informacji) czy wynik własnej, autorskiej implementacji. Fakt faktem – połączenie głosowe Psi – AQQ i Psi – Psi nie zadziałało. Jedynie połączenie głosowe AQQ-AQQ doszło do skutku… Skoro zatem działa to jak chce, uznaję, że nie działa w ogóle.

Zasoby vs. Multilogowanie

Idea zasobów w Jabberze bardzo mi się podobała, do póki GG Network nie wprowadziło w swojej sieci usługi Multilogowania. Podobieństwem głównym jest to, że możemy być zalogowani z różnych miejsc na to samo konto i… tu się podobieństwa kończą.

W przypadku Jabbera zasoby są traktowane jako oddzielne kanały komunikacji. Ma to pewną wadę, która ma źródło w punkcie pierwszym „Przerwanie połączenia„: mimo tego, że na danym zasobie nas nie ma (w wyniku problemów z połączeniem), to wiadomość nie dotrze na drugi zasób. W przypadku GG statusy jak i wiadomości są synchronizowane między każdym klientem (o ile ten obsługuje ową usługę).

Kolejnym problemem jest zarządzanie zasobami. Z reguły komputera nie wyłączam w ciągu dnia, nawet jak wychodzę. Zdarzyło mi się nie raz, że zostawiałem (przez nieuwagę) włączony komunikator – w przypadku Jabbera, wiadomości pojawią się tylko na zasobie, na który pisze dana osoba. Nie mam możliwości odczytania wiadomości z innego miejsca, a w szczególności: nie mam możliwości wylogowania innych zasobów. Gadu-Gadu umożliwia natomiast możliwość synchronizacji statusów, opisów i wiadomości między klientami, a także sprawdzenie IP innych instancji klienta oraz możliwość wylogowania innych sesji.

Chat vs. Konferencja

Konferencja w Jabberze to zupełnie inna sprawa niż konferencja w GG. Te jabberowe nazwałbym bardziej chatem. Dlaczego?

Chat jabberowy umożliwia udział w dyskusji tylko w momencie gdy jesteśmy zalogowani do serwera. Nie ma możliwości, że wyjdziemy na chwilę i dostaniemy wszystkie wiadomości po zalogowaniu. Dla mnie jest to dość istotne, planowanie wszelkich zadań, imprez itp. odbywa się w moim przypadku tylko przez sieć GG, bo każdy daną informację otrzyma, mimo, że zaloguje się później.

Chat w Jabberze ma jednak spore zalety względem konferencji GG i to muszę przyznać, przede wszystkim można do niej dołączyć w trakcie jego istnienia, a także zarządzać jego uczestnikami.

Katalogi użytkowników

Jako, że sieć Jabber nie ma jednego centralnego serwera, tak i nie ma jednego katalogu wszystkich użytkowników. To akurat dla mnie nie jest jednak takie ważne.

Awatary

To już raczej 'bajer’ a nie funkcjonalność, z tego co jednak widzę, to serwer AQQ.eu robi sobie je po swojemu i nie są widoczne z klienta Psi na serwerze Jabber.org, ta otwartość zatem nie jest tak do końca dobra.

Status niewidoczny

Status sporny, w niektórych klientach nie występuje (właśnie m.in. w Psi i Tkabber). Moim zdaniem zmuszanie do grzebania w listach prywatności jest bezsensowne, szczególnie jeśli akurat w danym momencie chce być niewidoczny dla wszystkich moich kontaktów – jeden klik tu nic nie da. A szkoda, wg. mnie pozycja „Niewidoczny” mogłaby w tych klientach aktywować odpowiednią listę prywatności. Oczywiście to kwestia klienta oraz serwera, ale wg zaleceń XMPP Standards Foundation tak to właśnie powinno wyglądać. Dla mnie jedna wielka pomyłka. Dobrze, że polskie „twory” obsługujące protokół XMPP nie są aż tak zgodne z powyższymi zaleceniami 😉

Uwaga od autora

Nie jestem przeciwnikiem XMPP/Jabber w żadnym calu. Powyższym wpisem chciałem zwrócić uwagę na fakt, że nie ma rzeczy idealnych. Inspiracją do wpisu są wszelkie komentarze na portalach typu dobreprogramy.pl, idg.pl, di.com.pl które traktują protokół XMPP jako świętość, a protokół GG jako dno (prawdopodobnie z samej zasady, że „GG jest złe”, co może i jest prawdą, ale raczej w odniesieniu do klienta, któremu do doskonałości brakuje na prawdę sporo, ale o tym traktuje już inny blog).

Samo GG nie uważam również za wzór do naśladowania, szczególnie jeśli chodzi o klienta to mam mnóstwo zastrzeżeń, natomiast do możliwości protokołu Gadu-Gadu większych zastrzeżeń nie mam.

Jeśli się mylę w którymś z punktów, proszę o komentarze poprawiające – jestem świadom, że mogę się mylić, aczkolwiek to co opisałem wynika z moich doświadczeń przy rocznym korzystaniu z sieci Jabber.

Tags: , , , , ,


7 komentarzy

  1. VPN pisze:

    Nie we wszystkim masz rację. W tej chwili nie odniosę się do wszystkiego. Napiszę tylko tyle, że ostatni rozwój sieci GG zawdzięczamy przede wszystkim rosnącej konkurencji ze strony XMPP. Osoby, które przez lata „uzależniły się” od sieci GG często trudno przyjmują inne zasady działania Jabbera. Sieć GG była tworzona dla polskich warunków, natomiast XMPP jest światowe.

    • Qrix pisze:

      oczywiście zgadzam się, ale nie zmienia to faktu, że ani jedno ani drugie rozwiązanie nie jest idelane i oba protokoły względem siebie mają braki. Kwestia tego co kto potrzebuje 😉

  2. Ris pisze:

    „Przerwanie połączenia”
    Używam połączenia GSM. Przy zerwaniu (dość częstym) połączenia z internetem, nie ma reguły czasem gg nie dostarczy, czasem jabber, częściej gg.

  3. andy pisze:

    „Przez jakiś czas w obu wypadkach jesteśmy jeszcze zalogowani. Gdy ktoś w tym czasie do nas napisze to:

    * Jabber.org zgubi wiadomość – po ponownym zalogowaniu nie dostaniemy żadnej wiadomości
    * Gadu-Gadu otrzyma wiadomość w większości wypadków (zdarzyło się mi raz, że wiadomość nie dotarła)”

    XMPP oferuje narzędzie do szybkiego wykrywania zerwanego połączenia – XMPP Ping http://xmpp.org/extensions/xep-0199.html

    Taki ping może być realizowany przez serwer (serwer wysyła pakiety do klienta i czeka na odpowiedź, jeśli nie dostanie połączenie uznaje za zerwane) lub przez klienta i wtedy klient odpytuje serwer co określony interwał.
    Używam tego w Mirandzie. Mirka odpytuje serwer co minute i jeśli w ciągu 30 sekund nie dostanie odpowiedzi rozłącza połączenie uznając je za zerwane.

    „Z tego co mi wiadomo, to Jabber nie pozwala na przesyłanie obrazów w oknie rozmowy. ”
    Jabber nie ma nic do wyświetlania obrazków w oknie rozmowy – ta część należy do klienta.

    „Nie jest to jednak jakieś ograniczenie: jak widać komunikator AQQ pozwala mimo wszystko na taki zabieg, ale stosując własną modyfikację protokołu, ”
    No właśnie modyfikacje…

    XMPP od niedawna ma XEPa oznaczonego jako experimental, który definiuje wysyłanie małych danych w strumieniu. Nazywa się Bits of binary http://xmpp.org/extensions/xep-0231.html Może to służyć do przesyłania emotek, małych obrazków (większe via FT) itd.
    Wyświetlanie ich w oknie rozmowy zależy już od klienta.

    „Rozmów Video Jabber nie posiada i tyle (jak się mylę – zapraszam do komentowania z linkiem do dowodu).”
    Kolejny raz się mylisz. XMPP posiada wsparcie dla dźwięku audio i wideo – Jingle.
    Obecnie nieliczne klienty mają to zaimplementowane.

    „Co do rozmów audio: sam korzystam z nich dość często, Psi również je posiada, aczkolwiek nie jestem pewny, czy jest to wynik istnienia zatwierdzonych rozszerzeń protokołu (nie znalazłem takowej informacji) czy wynik własnej, autorskiej implementacji. ”
    PSI obsługuje rozmowy głosowe via Jingle.

    „mimo tego, że na danym zasobie nas nie ma (w wyniku problemów z połączeniem), to wiadomość nie dotrze na drugi zasób. W przypadku GG statusy jak i wiadomości są synchronizowane między każdym klientem (o ile ten obsługuje ową usługę).”

    Jeśli ustawisz taki sam priorytet na wszystkich sesjach to wiadomości powinny przez serwer być dostarczane na każdy z nich.

    „Nie mam możliwości odczytania wiadomości z innego miejsca, a w szczególności: nie mam możliwości wylogowania innych zasobów.”
    Jak to nie ma? Wszystkie te czynności można zrealizować via AD-HOC Commands. Nie raz już z BombusMODa przekierowywałem wiadomości nieprzeczytane z Mirandy, zmieniałem na niej status, opis, zamykałem klienta, wyłączałem komputer – jest to moim zdaniem jedna z najciekawszych rzeczy w XMPP.

    „Nie ma możliwości, że wyjdziemy na chwilę i dostaniemy wszystkie wiadomości po zalogowaniu.”

    Można w pokoju ustawić opcję logowania i wtedy podczas zalogowania się do konferencji mamy wczytane n ostatnich wiadomości.

    „Jako, że sieć Jabber nie ma jednego centralnego serwera, tak i nie ma jednego katalogu wszystkich użytkowników. ”

    Każdy kij ma dwa końce 😉

    „To już raczej ‘bajer’ a nie funkcjonalność, z tego co jednak widzę, to serwer AQQ.eu robi sobie je po swojemu i nie są widoczne z klienta Psi na serwerze Jabber.org, ta otwartość zatem nie jest tak do końca dobra.”

    AQQ przechowuje awatary według obecnie obowiązującego XEP-0084: User Avatar, natomiast większość innych klientów obsługuje jeszcze stary mechanizm (vcard) i dlatego często pojawiają się te problemy.
    Trzeb czekać aż klienty usunął przestrzały XEP i zaimplementują obecnie obowiązującą wersję.

    „Status niewidoczny”

    XMPP definiuje XEPa informacyjnego (XEP-0126: Invisibility), który wyjaśnia w jaki sposób obsłużyć status „niewidoczny”. Wszystko jest tutaj: http://xmpp.org/extensions/xep-0126.html
    Moim zdaniem jest to najlepszy sposób aby klient miał możliwość szybkiego ukrycia się.

    „Inspiracją do wpisu są wszelkie komentarze na portalach typu dobreprogramy.pl, idg.pl, di.com.pl które traktują protokół XMPP jako świętość, a protokół GG jako dno (prawdopodobnie z samej zasady, że „GG jest złe”, co może i jest prawdą, ale raczej w odniesieniu do klienta, któremu do doskonałości brakuje na prawdę sporo, ale o tym traktuje już inny blog).”
    Fanatycy znajdą się w każdym obozie 😉

    „Jeśli się mylę w którymś z punktów, proszę o komentarze poprawiające – jestem świadom, że mogę się mylić, aczkolwiek to co opisałem wynika z moich doświadczeń przy rocznym korzystaniu z sieci Jabber.”
    Z protokołu korzystam już 5-6 lat i też mam wiele braków więc spokojnie 😉

    • kkszysiu pisze:

      Przerwanie połączenia – http://xmpp.org/extensions/xep-0184.html – czyli coś podobnego do tego co robi GG, po prostu Twój klient pewnie tego nie wspiera 😉

      Co do wysyłania obrazków masz: In-Band Bytestreams którego np. używał Jabbim Client do przesyłania obrazków w okienku i XEP 231 jak wspomniał Andy.

      Rozmowy Głosowe i Video – A Jingle? Właśnie do tego powstał a na dodatek Mingle pozwala na uczestniczenie w audio/wideokonferencjach.

      Zasoby vs. Multilogowanie jak pisze nie na zasób ale na JID to wiadomość dotrze do tego zasobu, którego priorytet jest wyższy. Simple, isnt it? Poza tym poprzednią wadę z przerwaniem połączenia chyba zdementowałem, prawda?

      Chat vs. Konferencja – Od tego są w XMPP tzw. wiadomości (poprawnie to wiadomości są do wysyłania pojedyńczych powiadomień, konwersacje/czaty do pisania za pomocą Instant Messengingu a konferencje to „czaty” ;)). Które mogą być wysłane bez problemu do wielu użytkowników na liście.

      Awatary – Po prostu AQQ używa eksperymentalnej implementacji awatarów i klienty które nie są eksperymentalne nie mają zaimplementowanego tego XEPa.

      Resztę chyba opisał Andy 😛

  4. karololszak pisze:

    W XMPP niektóre rzeczy można zrealizować na kilka sposobów, czasami własnych, i dlatego z innymi klientami / serwerami one nie są zgodne… Ja używam serwera jabster.pl, i AQQ – oba nie są świetne, ale niektórych wyżej wymienionych rzeczy nie zaobserwowałem… Spróbuję się odnieść do ww. punktów:
    Ad. 1 – „Przerwanie połączenia”: cóż, zdarzyło mi się chyba 3 razy; nigdy wiadomości nie straciłem.. Na serwerze jabster do niedawna była jeszcze usługa jorge (archiwum online, które trzeba było aktywować) – teraz trzeba za nie płacić, ale uważam że nadal się opłaca; nawet jeśli wiadomości przyjdą na inny zasób, czy „pójdą gdzieś w eter”, to powinny być na jorge.
    Ad.2 – „Obrazki”: w XMPP jest ten problem, że nie ma ogólnie przyjętego standardu, który by opisywał transfer obrazków.. Pidgin jest takim komunikatorem, który również umożliwia transfery obrazków, ale wydaje mi się że tylko na linii Pidgin Pidgin.. AQQ stosuje tzw. „brzydki hack” (własny dodatek do protokołu transferu plików), przez co inne komunikatory albo tych transferów nie rozumieją (i wywalają błąd), albo traktują jako zwykły transfer pliku – bo w końcu obrazki to też pliki 😉
    Ad.3 – „Rozmowy Głosowe i Video”: o, mylisz się, i to nawet powiem – bardzo. Rozmowy głosowe w sieci XMPP istnieją, wg. standardu powinny być realizowane wg. rozszerzenia XEP-0166: Jingle ( http://xmpp.org/extensions/xep-0166.html ). Jingle oferuje też rozmowy wideo. Ba, przy pomocy XEP-0272 Multiparty Jingle (Muji) – http://xmpp.org/extensions/xep-0272.html – można osiągać multi-wideokonferencje, czego nie doświadczysz w Skype czy GG 😛 Więcej info tutaj: http://forum.aqq.eu/topic/6643-czat-opcja-glosowa-mikrofon/page__view__findpost__p__66106 .
    Ad.4 – „Katalogi użytkowników”: ale na niektórych serwerach masz katalogi ogólne serwera, oczywiście trzeba się wpierw do takiego wpisać. A z tego że jabster.pl i jabbim-y są na jednym clusterze, mamy mega-wyszukiwarkę. BOOM 😛 Poza tym można korzystać z wyszukiwarek innych serwerów (jid.pl ma swoje, chrome.pl bodajże też, tak samo aqq.eu) – tylko trzeba używać *normalnego* klienta 😉
    Ad.5 – „Awatary”: kolejny punkt, który jest spowodowany rozdrobnieniem XMPP. Awatary można realizować na 3 sposoby – via vCard (odrzucono, a to był pierwszy standard), pub-sub i na bazie iq. Każdy klient realizuje które chce 😛 Najbardziej w tym zakresie podoba mi się WTW ;] Jak się orientuję to AQQ obsługuje je na bazie pub-sub, a Psi akurat na bazie IQ. WTW chyba wszystkie.. Ogólnie to jest nagmatwane 😉 Poza tym, AQQ gubi awatary, tak więc nie ufał bym mu ;P
    Ad.6 – „Status niewidoczny”: WTW to realizuje najlepiej… Polecę artykuł „Status niewidoczny – co z nim?” autorstwa picasso: http://www.fixitpc.pl/index.php?/topic/63-jabberxmpp-status-niewidocznosci/ . Zgłosiłem błąd na trackerze AQQ: http://forum.aqq.eu/tracker/issue-3525-niewidocznosc-niewidzialnosc/ i sobie fajnie wisi i czeka na realizację..

    Podsumowując mój komentarz – w Twoim artykule znalazło się trochę nieścisłości, i nie zgadzam się z tym że GG nadal ma w swoim protokole coś czego warto używać – decydująca większość jest do osiągnięcia w XMPP.. sumar sumarum: GG to zuo, XMPP rlz! 😛

Odpowiedz

 

QrixLog

Nie musisz o mnie nic wiedzieć