yChat jest eksperymentalna, XML-konfigurowalny, szybki, przenośny, multi-platform opartych na sieci Web serwera czatu napisany w C ++ i trochę podzbiór C, która wspiera bezpieczne gniazda SSL za pomocą OpenSSL, bazy danych MySQL i jest kompatybilny z niemal wszystkich przeglądarki, które obsługują ramek i JavaScript.
yChat działa na wszystkich serwerach, które są kompatybilne i wykorzystują POSIX.4a GNU GCC z kompilatora C ++ z 3,1 i z pthreads włączone. Jego opracowane na licencji GNU General Public License.
yhttpd jest bardzo lekki serwer WWW w oparciu o silniki gniazd i nici yChat.
Oto kilka kluczowych cech "yChat":
Jej darmo i przenośny
· YChat jest rozwijany pod GNU General Public License i jest oparty na GNU
narzędzia (gcc, gmake), inne rzeczy biblioteki open source (takich jak libncurses itp)
i powinien działać na każdym systemie operacyjnym zdolnym POSIX (takie jak oparte Linux
systemy, FreeBSD, NetBSD, OpenBSD i inne systemy BSD Unixach jak i na
IRIX, HP-UX, Solaris itp).
Nie ma potrzeby dla specjalnych klientów czatu
· YChat jest oparty na sieci, co oznacza, że klienci mogą łączyć się tylko z serwerem czatu
z normalnej przeglądarki internetowej, takiej jak Microsoft Internet Explorer lub dowolnego Gecko-
Silnik przeglądarek jak Mozilla powerd, Firefox, Camino itd.
Posiada cechy prawdziwego serwera WWW HTTP
· YChat się całkowicie samodzielny i nie potrzebuje innego serwera WWW do budowy
na jak Apache i nie musi być uruchamiany poprzez wszelkiego rodzaju CGI. yChat tworzy
Gniazdo na własną dostosowanego portu (standardowy port: 2000) i wydaje się być pełne
funkcjonalny serwer HTTP do klientów internetowych (przeglądarki internetowe).
· Baza kodu yChat mogą być konwertowane do kodu bazowego yhttpd automatycznie. yhttpd
jest podzbiorem serwer WWW z yChat która działa zupełnie samodzielnie, i zapewnia
zwykłe strony internetowe, do siatki. Wspiera on także Common Gateway Interface (CGI)
skryptowym.
Jego szybka i bezpieczna
· YChat jest napisany w C ++, który jest szybszy niż w oparciu Java Chat-Server lub którykolwiek
serwer napisany w języku skryptowym PHP, Python, jak i Perl. Jako
hash wewnętrzne struktury danych mapy są używane do garuantee poszukiwania pewne
wartości w czasie O (1) ilość czasu. Jeśli mapy hash staje się pełna, zostanie rehashed.
Obecnie yChat została zmierzona dostarczając ponad 1000 Hits / żądań na sekundę
w polu Serwer FreeBSD oparte podczas korzystania z mniej niż 2% użycia procesora
na Athlona XP 1900+ a. Wydajność wydaje się być ograniczony jedynie swojej przepustowości.
Ponadto, każdy użytkownik otrzymuje swój własny identyfikator sesji (losowy string) o standardowej długości
50 znaków w celu uwierzytelnienia każdego zalogowanego użytkownika. Długość identyfikatora sesji
może być na nowo, jak również. Ponadto, identyfikator sesji będzie zakodowane md5-opcjonalnie
tak, to jest to jeszcze trudniejsze do reverse engineering identyfikatory sesji innych użytkowników.
Również yChat obsługuje protokół przesyłania hipertekstu bezpieczne (https) połączenia
korzystania z biblioteki OpenSSL. Następnie, wszystkie wiadomości czatu będą szyfrowane w
bezpieczny sposób. HTTPS jest opcjonalne do połączeń HTTP (niezabezpieczone).
Jego szablonu HTML na podstawie i łatwo dostosować za pomocą konfiguracji XML na podstawie
· Wszystkie strony HTML są predefiniowane w postaci plików HTML-szablon i mogą być łatwo modyfikowane
do korzystania z niestandardowych projektowanie stron internetowych. Ponadto, wiele preferencji yChat może być
ustawić w głównym pliku konfiguracyjnym (ychat.conf). ychat.conf jest napisane
w XML 1.0, co ułatwia korzystanie z opcji konfiguracyjnych w programach
3-cia osoby, która może chcesz napisać kilka narzędzi użytecznych dla yChat.
yChat buforuje wszystkie obrazy, HTML i internetowych w celu poprawy ogólnej wydajności. Jeśli to konieczne,
pamięci podręcznej można usunąć do buforowania nowych wersji plików szablonów.
Jego język oparty szablonu
· Administrator może łatwo stworzyć nowy język, w którym wszystkie komunikaty systemowe
pojawiają się na chat-Użytkownika. Predefiniowane językach jest po angielsku, ale inne mogą być
dodany łatwo. Język może być edytowany w pliku konfiguracyjnym XML oparty.
Baza danych oparta MySQL
· Zarejestrowani użytkownicy są przechowywane w bazie danych MySQL. Programiści C ++ mogą czuć się swobodnie
zastąpić klasy otoki w bazie (data.h) z innym procedur bazodanowych
do korzystania z innych baz danych, takich jak PostgreSQL, SQLite lub bazy danych w oparciu o tekst itp
Jeśli chciał, możesz wyłączyć obsługę baz danych w opcji pre-kompilacji.
Posiada interfejs administracyjny
· YChat zawiera ncurses interfejs administracyjny oparty która śledzi niektórych
ciekawe statystyki i komunikaty systemowe i pozwala zrobić pewne
zadania administracyjne. Ponadto można przejść do wiersza poleceń CLI (
Tryb interfejsu) interfejsu administracyjnego w celu być wyposażona
bardziej dostępne funkcje (takie jak śledzenie bieżącego wykorzystania systemu itp).
Jeśli nie lubisz ncurses i / lub CLI można wyłączyć obie opcje w przed-
kompilacji opcje.
To ma możliwości logowania
· Menedżer logowania śledzi wszystkich komunikatów systemowych yChat (takie jak użytkowników
wich zalogować i wylogować, moduły, które są ładowane, zapytań MySQL itp). Również
Apache-Style w połączeniu format pliku dziennika jest tworzony przez yChat (można analizować ten
z każdym logów Apache pliku dziennika parsera jak awstats itp). I ostatnie, ale nie
najmniej, wszystkie wiadomości publicznej wszystkich dostępnych pokoi będą rejestrowane na dysku, jak
dobrze. Aby zwiększyć wydajność, można zdefiniować puffer rejestrowania (standardowo
nowe dzienniki będą zapisywane na dysku po każdym 20 linii). Jeśli chcesz się zalogować
wszystko od razu, można przywrócić tę opcję do 1 w ychat.conf.
Jego modułowa poprzez własną komendą i dynamicznym silnikiem HTML
· Wszystkie polecenia są realizowane za pośrednictwem czatu ładowalne dynamicznych modułów, które mogą plików
rekompilacji i przeładował bez ponownego uruchamiania całego serwera yChat. Również
HTML-Strony z niektórych zadań może być skompilowany jako moduł, jak
mods / html / yc_register.so, mods / html / yc_options.so i mods / html / yc_colors.so
itd., więc można również zaprogramować dynamicznych stron internetowych yChat w C ++.
Jego wielu gwintowane (POSIX wątków)
· Jest tylko jeden główny proces, który ikra kilka wątków, każdy na własną rękę
unikalne zadanie. Na przykład jeden wątek jest używany do obsługi menedżera gniazd, które
czeka na nadchodzące żądania protokołu TCP / IP, kolejne harmonogramy wątek zegara systemu
co dowodzi, jeśli klienci są nadal aktywne i zwalnia pamięć nie jest potrzebne w niektórych
przedziały czasowe (patrz także "garbage collector"). Ponadto, każdy Czat Użytkownika staje się właścicielem
wątek. Nie ma potrzeby tworzenia ubytku pamięci, dla każdego nowego zadania
Proces. Wszystkie Tematy dla użytkownika są zarządzane przez puli wątków, aby uniknąć marnotrawstwa procesora
tworzenie za każdym razem nowy wątek poprzez ponowne wykorzystanie obiektów wątku zrobili jej
miejsc pracy i już zostały ponownie dodane do kolejki puli wątków.
Standardowe rozmiary kolejce i łącznej wielkości puli można ustawić w ychat.conf.
Jego silnik kolekcji za pomocą inteligentnych śmieci
· Wszyscy użytkownicy i pokoje, które nie mają być przechowywane w pamięci głównej (bo
użytkownik zalogował się lub pokój został zniszczony dlatego, że był pusty) będzie
Nie natychmiast usunięte, ale być umieszczony na około 10 minut w yChat
garbage collector. Za każdym razem powstaje nowa sala sprawdza systemy
śmieci do ponownego wykorzystania obiektu nieaktywnego pokój. Jeśli dany użytkownik chce się zalogować,
System sprawdza, czy jest już obecny w garbage collector. Jeśli tak, to będzie
być ponownie bez marnowania drogich zapytań do bazy danych, aby pobrać użytkownika
Opcje. To zwiększa ogólną wydajność mocno obciążonych serwerów na razie yChat
Wielu użytkowników i pokoju obiektów są tworzone i niszczone częściej.
Co nowego w wersji 0.8.2:
· Poprawiono kilka literówek
· Dodano - Versioning - punkt w pliku README
· Usunięto plik źródłowy modułu dowodzenia yc_template
· Skrypty / config.pl teraz przyjmuje również q i wyjść jako polecenie
· Minor bugfix w skryptach / config.pl
· Niektóre ulepszenia w src / configure
· Zmieniono niektóre wartości domyślne w src / glob.h
Co nowego w 0.7.9.5 wydaniu:
· W tej wersji dodano .pm wykrywanie do scripts / stats.pl.
· To modyfikuje README (nowy adres pserver CVS).
· Wszystko .cpp, .h, a pliki .tmpl mają teraz nowy nagłówek źródłowego za pomocą docs / header.txt jako nagłówka szkieletu.
· Drobne poprawki zostały wykonane.
Szczegóły programowe:
Komentarze nie znaleziono