Rozszerzenia protokołu Gadu-Gadu zaimplementowane w Pierwszych Polskich Wątkujących Pogaduszkach

Wersja dokumentu: 1

Data publikacji: 10 marzec 2006


Dla zwiększenia możliwości komunikacyjnych protokołu Gadu-Gadu Pogaduszki implementują rozszerzenia opisane w niniejszym dokumencie.

Unikod

Pierwszym celem było zapewnienie możliwości używania właściwszego w środowisku internetu kodowania niż Windows-1250. Kodowanie Windows-1250 choć istotnie lepsze od popularnego kodowania ISO-8859-2 jeśli chodzi o przystosowanie do kodowania polskich tekstów ograniczone jest jednak do kilku języków. Nie da się nim pisać w dowolnym języku więc zasadniczo nie nadaje się ono do używania w internecie. Stąd celowe wydaje się poprawienie tego stanu rzeczy przez wprowadzenie możliwości kodowania w Unikodzie. Wykorzystano opisane w specyfikacji Unikodu sekwencje BOM zawierające informacje o tym w jakim formacie Unikodu będą następujące po sekwencji BOM znaki. Przyjęto, że używanym formatem Unikodu będzie Utf-8. To bezkonfliktowy format zapewniający, że istniejące oprogramowanie serwerowe nie musi go specjalnie obsługiwać. Modyfikacji podlegać musi jedynie program kliencki. Przyjęto, że sekwencja BOM zmienia kodowanie trwale, tj po jej wystąpieniu wszystkie wiadomości kodowane są w Unikodzie bez możliwości powrotu do Windows-1250 przy czym zmiana ta musi zostać potwierdzona przez drugą stronę również wystąpieniem sekwencji BOM. Oczywiście zmiana kodowania dotyczyć będzie tylko konkretnego rozmówcy. Póki nie nadejdzie potwierdzenie powinniśmy wysyłać wiadomości kodowane w Windows-1250. W ten sposób klienci nieimplementujący tego rozszerzenia mogą nadal być używane przez użytkowników. Trwałość przestawienia kodowania sekwencją BOM powinna być możliwie duża, ale nie za duża. Można przyjąć np, że każde powiadomienie o przejściu ze stanu niedostępności do dostępności czy zajęcia użytkownika do którego kierujemy wiadomość wymaga ponownego wysłania sekwencji BOM. Wydaje się, że nie musi wymagać ponowienia BOMu samo przejście w stan niedostępności, bo stan taki występuje często podczas zwykłej wymiany wiadomości gdy użytkownik chce się ukryć przed większością użytkowników a prowadzić rozmowę z wybranym(/i) i gdy drugi użytkownik nie używałby klienta implementującego to rozszerzenie to widziałby wysyłane ciągle sekwencje BOM. Biorąc pod uwagę, że dany użytkownik rzadko zmienia klienta można weryfikować czy ciągle używa wspierające to rozszerzenie tylko gdy wykryjemy jego zalogowanie. Przyjmiemy, że wykrycie sekwencji BOM oznaczać będzie, że klient może obsługiwać też inne proponowane rozszerzenia.

Wątkowanie

Kolejnym celem rozszerzania protokołu powinno być przesyłanie informacji o powiązaniach artykułów tak, by możliwe było czytelne wizualizowanie prowadzonej rozmowy. Temat ten rozwiniemy w kolejnej wersji dokumentu...