MajIrc

18 kwietnia 2006

Dziś zaczołem coś robić w sprawie klienta IRC dostępnego na www ;) Bez żądnych apletów Javy czy ramek i wbudowanych ramek. Idea jest stworzenie klienta IRC dostepnego przez www w formie aplikacji webowej, z wykorzystaniem Ajaxu. Łatwe i przyjemne korzystanie z usług IRCa bez potrzeby instalacji klientów i programów.
Połączenie wbudowanych, lub wogóle ramek z Ajaxem miało by jakis sens, ale zostańmy przy aplikacji webowej :P

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 :)

Podobne notatki:

Może zainteresują Cię również następujące, pododbne notatki:

Nikt jeszcze nie skomentował tego wpisu.
Możesz być pierwszy.

Dodaj swój komentarz

Możesz użyć tych tagów XHTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Jeśli chcesz wstawić kilku linijkowy fragment kodu, użyj tagów <pre lang="x"></pre> (gdzie x język kodu np. cpp, perl, html). W ten sposób kod zostanie odpowiednio sformatowany i pokolorowany przez system.

Uwaga!

Na tym blogu działa system cache oraz filtr antyspamowy. Twój komentarz może być widoczny na stronie z pewnym opóźnieniem. Proszę o cierpliwość. Jeśli utraciłeś już wszystkie jej zasoby poinformuj mnie o tym, być może system uznał Cię za spamera ;)