Dawno nie pisałem tutaj o komunikatorach internetowych, chociaż to jedne z moich ulubionych programów do dłubania po godzinach. Jeśli się nie mylę to ostatnio było coś o łatce do Openfire, a wcześniej chyba o pluginie do PowerGG (by Ajron, pamięta ktoś?)
Moje poszukiwania komunikatora który można polecić znajomym chyba dobiegły końca, XMPP (Jabber) w roku 2016 jest zdecydowanie używalny. Tradycyjnie największym problemem była obsługa wielu urządzeń, jeszcze nie tak dawno musiałem łatać serwer żeby uniknąć sytuacji w której siedzę przed komputerem, ktoś do mnie pisze, a wszystkie wiadomości przychodzą na telefon ładujący się w drugim pokoju.
W 2016 roku w końcu istnieją klienty obsługujące standardy "Message Carbons" (wysyłanie wiadomości do wielu zasobów) i "Message Archive Management" (archiwum wiadomości po stronie serwera).
Drugim dużym problemem było przesyłanie plików. Nawet korzystając z dwóch identycznych klientów nie zawsze dawało się plik przesłać. Zmieniło się to dzięki dwóm kolejnym standardom: "Jingle File Transfer" i "HTTP File Upload". Pierwszy z nich wykorzystuje technologę Jingle, wcześniej używaną (bez większego powodzenia) do zestawiania połączeń głosowych, do nawiązania bezpośredniego połączenia między klientami. Drugi pozwala na wysyłanie kilkumegabajtowych plików na serwer XMPP. Pliki są następnie serwowane po HTTP(s), a link jest automatycznie obsługiwany przez klienta po drugiej stronie.
Kolejnym problemem była jakość obsługi połączeń o słabej jakości (internet przez GSM). Tradycyjnie XMPP było tak odporne na problemy jak odporne było połączenie TCP z serwerem. Wyglądało to tak, że serwer jeszcze przez kilka minut po niespodziewanej utracie połączenia przez klienta wysyłał wiadomość w przestrzeń, natomiast Psi+ (klient) po połączeniu z VPN-em przez kilkadziesiąt minut potrafił nie zauważać że utracił połączenie z serwerem, i nie łączyć się ponownie.
Problemy te zostały rozwiązane przez standardy: Stream Management oraz Message Delivery Receipts. Pierwszy radzi sobie ze znikającymi połączeniami TCP, drugi dostarcza potwierdzenia dostarczenia wiadomości - tak, że nawet jeśli coś pójdzie nie tak na łączach, to klient zorientuje się i spróbuje wysłać wiadomość ponownie bądź w ostateczności wyświetli ją na czerwono aby użytkownik wiedział co się stało.
Da się teraz używać również szyfrowania end-to-end (czyli takiego, że żaden z serwerów XMPP nie widzi treści przesyłanych wiadomości). Poprzedni standard, OTR, nie za bardzo działał na wielu urządzeniach, a nawet kiedy obie strony rozmowy były zalogowane tylko na jednym urządzeniu, lubił sprawiać różnego rodzaju niespodzianki typu: OTR jest włączone a nadal pokazuje się ciphertext, szyfrowanie działa tylko w jedną stronę, itd. Wad tych nie ma OMEMO: zostało zaprojektowane z myślą o wielu urządzeniach i działa w zasadzie przezroczyście. Można z niego korzystać również w rozmowach konferencyjnych.
Właśnie, MUC, czyli konferencje. Korzystanie z nich na Androidzie to teraz czysta przyjemność: zaznaczasz kilka kontaktów i już, rozmawiacie wspólnie. Na klientach desktopowych jest nadal tak marnie jak było (czyli a'la IRC), ale wierzę że ktoś w końcu pożyczy pomysł.
Teraz konkrety: jakie oprogramowanie da się używać w 2016? Dla mnie jednym z kroków które najbardziej poprawiły komfort korzystania z XMPP była zmiana serwera z Openfire na Prosody. Wszystkie w/w standardy są tam wbudowane, a nawet jeśli nie, to wystarczy dopisać do configa linijkę włączającą odpowiedni plugin.
Dla moich rozmówców natomiast największym udogodnieniem jest Conversations - genialny klient na Androida. Wygląda tak, jak należałoby się tego spodziewać po nowoczesnym programie (kto pokazywał znajomym Xabbera, wie o czym mówię), obsługuje wszystkie w/w standardy, działa sprawniej niż jakikolwiek klient na desktopie. Do tego ma drobne udogodnienia typu przycisk do zrobienia zdjęcia i wysłania od razu rozmówcy czy te proste konferencje o których wspominałem powyżej. Jest do pobrania za darmo z F-Droida lub za niewielką opłatą z Google Play. Jeśli przekonałem cię tym wpisem do używania Conversations, kup proszę płatną wersję bądź prześlij autorowi ekwiwalent w bitcoinach czy paypalcoinach - autor robi dużo dobrego w świecie otwartych komunikatorów.
Na komputerze niestety jest mniej kolorowo: musiałem pożegnać się z moim starym przyjacielem Psi+, który zaczął rozwijać się w jakimś dziwnym kierunku i niby wychodziły nowe wersje, ale nie rozwiązywały żadnego z problemów które miałem (a sam w projekcie nie uczestniczyłem po tym jak potraktowali kiedyś mojego patcha). W zasadzie jedynym klientem obsługującym nowoczesne standrardy jest w tej chwili Gajim. Nie jest może najnowszym krzykiem mody jeśli chodzi o wygląd i obsługę, ale działa, autorzy nie mają problemu z przyjmowaniem patchy, więc i społeczność jest w miarę żywa.