class.tlen.php
• tech • 271 słów • 2 minuty czytania
Trochę się pobawiłem tą klasą do Jabbera i zabrałem się do kombinowania nad obsługą protokołu Tlena. Wszystko byłoby fajnie gdyby nie szyfrowane połączenia z serwerem, czego nie mogłem rozgryźć. Ale rozmawiając na słynnym pokoju BT (Bar Tlenowy) dowiedziałem się, że TREN coś lekko zmodyfikował klasę Jabbera, aby można było połączyć się z serwerem Tlena. No i teraz wiem, że możliwe jest zestawienie nieszyfrowanego połączenia z serwerem.
Standardowe zestawienie połączenia (szyfrowane) rozpoczyna się tak:
<s s="1" v="7" t="05170507">
Następnie serwer przesyła klucze do szyfrowania połączenia, klient odpowiada, po czym następuje logowanie do sieci.
Nieszyfrowane połączenie różni 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 s
i v
zależy rodzaj zestawianego połączenia. Zmienna t
jest opcjonalna, określa ona wersje klienta, a v
bliżej nie określona.
Mając połączenie z serwerem, reszta już powinna pójść gładko. Do kodowania hasła wykorzystam algorytm z libtlen2 (niezależnej biblioteki obsługującej protokół Tlena), który tylko należy przenieść z C do PHP. Teraz nie powinno być większych problemów nad dalszą implementacją klasy obsługującej ten protokół ;)
Jedynym małym problemem jest na razie 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 gdy uda mi się to wykonać, to klasa ta znajdzie szersze uznanie i ciekawe wykorzystanie.
Myślę też nad czymś podobnym w Javie oraz javowym kliencie do Tlena. Co prawda istnieje oficjalna wersja Tlena napisana w Javie (jTlen), ale nie obsługuje ona czatów. Mam więc szansę na stworzenie czegoś co może zakonkurować z oficjalną wersją… :)
Komentarze (4)
Ciekawe, ciekawe ;-) jest jeszcze WebTlen ;p ( to od o2 to JTlen )
ja ci dam ‘Tren’ :P
No to super, napisz klase a ja sie nia pobawie. Moze uda sie nawet napisac jako taki komunikator na linuxa :]
No pisz ta klase wkoncu bo sie podniecam a tu niwidu nislychu :P