MajIrc

Dziś zacząłem coś robić w sprawie klienta IRC dostępnego na www ;) Bez żadnych apletów Javy czy ramek. Ideą jest stworzenie klienta IRC dostępnego przez www w formie aplikacji webowej, z wykorzystaniem Ajaxu. Łatwe i przyjemne korzystanie z usług IRC-a bez potrzeby instalacji klientów i programów. Połączenie wbudowanych (lub zwykłych) ramek z Ajaxem miało by jakiś sens, ale zostańmy przy aplikacji webowej.

Nazwa notki MajIrc, może się wydawać, że popełniłem bład przy pisaniu, i wkradła się literówka, a poprawną nazwą powinno być MalIrc. Sam nie wiem jak nazwać ten project MalIrc to by było z bardziej podstawowych metod nazewnictwa moich projectów, mirc juz jest wykorzystywane, MajIrc można interpretować jako skrót od Malcom Ajax IRC :P Narazie niech tak zostanie, może później cos lepszego sie wymysli.

Wiele rozważałem nad tym, jak to powinno funkcjonowac i jak rozwiązać główne aspekty projectu. Rozmawiając z kumpelą (Neutrinką) i orientując sie w tym kierunku doszedłem do wniosku, że rozwiązanie bedzie „standardowe”. Standardowe oznacza tutaj tyle, że oparte będzie na dwóch działających ze soba skryptach/interfejsach (nie wiem jak to odpowiednio nazwać :P)

Potrzebny jest „pomost” pomiedzy serwerem IRC a przegladarką. Taka bramka, która bedzie działać na serwerze stale połączona z serwerm IRC wymieniająca z nim bezpośrednio dane. Stale, tzn. w danej sesji klienta tworzonej przy odpaleniu strony (uruchomieniu aplikacji). Bramką bedzie prosty program w c, jakis klient irca Neutrinki w c (nirc bodajże) lub skrypt w php/perl/python. Najprawdopodobniej będzie to skrypt w php, bo w tym juz zaczołem pisać. Choć niewykluczone, że docelowo bramka może zostac przepisana w perlu ;)

Bramka odbiera dane z serwera IRC i zapisuje je w pliku (logu). Skrypt ładowany w przegladarce pobiera dane z pliku i odpowiednio je interpretuje, formatuje i przekazuje do przeglądarki. Skrypt ten również pobierając dane z przegladarki, dane wprowadzone przez usera, zapisuje na serwerze w pliku (buforze). Plik bufora jest pobierany przez bramke i wysyłany do serwera IRC.
Zrobiłbym mały graf prezentujący działanie, wtedy łatwiej mozna zilustrować sposób działania, ale zbytnio nie mam w czym to zrobic i jakos mi sie nie chce. Zresztą to jest proste. Mam nadzieje, że również dobrze to wytlumaczyłem i opisałem.

Komunikacja między skryptem a przegladarką będzie odbywana z wykorzystaniem obiektu XMLHttpRequest. Dane z pliku loga bedą pobierane co np. 1 sekunde przez przegladarkę i log bedzie czyszczony.

Nie wiem jak to do końca bedzie funkcjonować.

Zastanawiam się jeszcze nad wieloma rzeczami. Czy dane z serwera IRC, to jest pobierane przez skrypt do wysłania do przegladarki formatować odpowiednio po stronie serwera i wysyłać juz sformatowane i zinterpretowane, czy może lepiej uzyć XMLa do transportu danych, czy pobrac w czystym formacie Ircowym i wykonać wszytsko po stronie przegladarki w JS, a dane w czysto IRCowym formacie zassysać :P
Aspekt ten do końca jeszcze nie jest ustalony.

Lepszym rozwiązaniem wydaje mi się druga opcja, bo wtedy łatwo mozna byłoby manipulować i formatować dane w zależności od ustawień klienta. Tak w przyszłości myśle o wprowadzeniu jakiś ustawien i preferencji konfigurowanych przez usera ;)
Prócz tego prostsze byłoby wogóle odpowiednie nimi zarządzanie i dynamiczne dołaczanie do odpowiednich elementów strony/aplikacji klienta.

Jako interfejs aplikacji może wykorzystam qoodoo lub z kilku źródeł/skryptów coś prostszego stworzę. Na początek coś prostego to chyba najlepsze rozwiązanie.

Wspominając o mozliwości zastosowania klienta Neutrinki, chciałem zaznaczyc, że stworzyła ona bramke WAP – IRC. Wykorzystała tam kody swojego testowego klienta IRC zwanego nirc (Testowy NeutrIRC Neutrinki) oraz kilka skryptów w cgi :) wiecej na odpowiedniej stronie.

Wystarczy gadania, lepiej wziąść się za pisanie kodu :)

Dodaj komentarz

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