class.tlen.php

Trochę sie pobawiłem z tą klasą jabbera i zabrałem się do kombinowania nad obsługa protokołu tlena. Wszystko fajnie byłoby gdyby nie szyfrowanie połaczenia z serwerem, którego nie mogłem rozgryźć. Ale rozmawiając na słynnym pokoju BT dowiedziałem się, że Tren coś lekko zmodyfikował klase jabbera, aby można było połączyć się z serwerem tlena. Teraz wiem, że mozliwe jest zestawienie nieszyfrowanego połaczenia z serwerem.

Standardowe zestawienie połaczenie (szyfrowane) rozpoczyna się tak:

<s s="1" v="7" t="05170507">

nastepnie serwer przesyła klucze do szyfrowania połaczenia, klient odpowiada, po czym nastepuje logowanie do sieci.

Nieszyfrowane połaczenie, rózni się nieznacznie:

<s v="3" t="05170507">

Po wysłaniu takiego pakietu, serwer odpowie, że poprawnie się połączono, i dołączy zmienną id potrzebną do zakodowania hasła.

Wyraźnie widać, że od wartości zmiennej s i v zależy rodzaj zestawianego połączenia. Zmienna t jest opcjonalna, określa ona wersje klienta, a s bliżej nie określona.

Mając połączenie z serwerem, reszta już powinna iść prosto, a do kodowania hasła wykorzystam algorytm z libtlena2 (niezależnej biblioteki obsługującej protokól tlena), który tylko należy przenieść z c++ do php. Teraz, więc nie powinno byc większych problemów już nad pisaniem dalszej części klasy obsługującej ten protokół ;)

Jedynym małym problemikiem jest narazie czas, ale to za niedługo powinno się zmienić. Wtedy pomysł napisania klasy obsługującej tlena przerodzi się w nowy projekt class.tlen.php :) Mam nadzieję, że jeśli się uda to wykonać, to klasa ta znajdzie uznanie i szerszeoraz ciekawe wykorzystanie.

Myslę też nad czyms podobnym w javie oraz kliencie do tlena napisanym właśnie w javie. Istnieje oficjalna wersja tlena napisana w javie (jTlen), nie obsługuje ona czatów. Mam więc szansę na stworzenie czegoś co może z zakonkurować z oficjalną wersją… :)

4 przemyślenia nt. „class.tlen.php”

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *