LordRaven
17.07.2011, 09:18:41
Witam,
Jak polecacie zrobić wielopokojowy czat ajax?
Czy zapisywać rozmowy do bazy danych czy lepiej do pliku ?
Kiedyś napisałem w fameworku cakephp czat i korzystałem z bazy danych, ale było sam skrypt prostego chatu. Wtedy korzystałem z metody remoteTimer() która co 1 sek pobierała z bazy dane i update-owa diva.
Ale teraz przy wielu pokojach się zastanawiam czy to będzie dobry pomysł, bo dajmy na to że będzie z 250 pokoi i w każdym z nich po 100 użytkowników to mam 250*100 to jest 2500 zapytań na sek :/ czyli Sajgon dla bazy danych.
Chyba że skorzystać z cache, co polecacie zrobić ?
toaspzoo
17.07.2011, 09:34:50
Ja korzystam z advajax'u
Lepiej na bazie, kasuj po prostu posty starsze niż 10 minut, a dla niezalogowanych po minucie.
ShadowD
17.07.2011, 09:46:04
Korzystaj z mysql w ram'ie (jest odpowiedni typ tabeli) i jeśli na prawdę chcesz mieć tyle zapytań to cache konieczne, a w zasadzie może nie tyle co cache, a plik w którym masz zapisany id ostatniej dodanej rozmowy, jeśli się zmienił pobierasz z bazy, jeśli jest taki jaki użytkownik miał przy poprzednim sprawdzeniu/sprawdzeniach nic nie robisz. W taki sposób mysql jest wyłączony z działań dopóki ktoś nie zechce dodać wpisu lub pobrać już konkretnych wpisów wiedząc o ich istnieniu. Przy pobieraniu robisz cache na zasadzie jeśli ktoś pobrał wpisy od x do y to zapisujesz je do pliku lub i nawet lepiej korzystasz z pamięci współdzielonej dla zapisania tych notek.
Problem pojawi się jak będziesz chciał dodać możliwość usuwania/edycji chat'u - przemyśl ten problem zanim cokolwiek napiszesz.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.