Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] shoutbox
sebekzosw
post
Post #1





Grupa: Zarejestrowani
Postów: 437
Pomógł: 42
Dołączył: 16.04.2007

Ostrzeżenie: (0%)
-----


Witam!
Mam zamiar zrobić shoutbox oparty o bazę danych MySQL. Jednak muszę wziąć pod uwagę, że w jednym momencie mnóstwo osób będzie czytało (shoutbox byłby w czasie rzeczywistym - co 1 sec pobieranie wpisów za pomocą ajax lub podczas dodania wpisów) jeżeli tak to w ciągu sekundy wykona się 1000 zapytań dla tysiąca userów nie piszących lub 3000 zapytań dla userów piszących. Jak należy to zrobić, aby było to szybkie, optymalne i bez lagów. Obecnie mam tak, że co pół sekundy za pomocą ajax ładuje plik txt z wpisami, a cron co 2 min wykonuje pętle trwająca 118 sec ( sleep(1); po każdej iteracji ), jednak są lagi w tym. Jakieś sugestie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bim2
post
Post #2





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

Ostrzeżenie: (0%)
-----


Znów będę polecał shoutbox nospora, bo został on napisany bardzo optymalnie. W dziale Gotowe rozwiązania w Algorytmy, klasy funkcje masz temat założony przez ~nospora pod tytułem Shoutbox (IMG:style_emoticons/default/smile.gif) Podejrzyj sobie jak on to rozwiązał. Z tego co kojarze do pliku zapisywał właśnie tak jak thek mówi znacznik czasu albo id ostatniej wypowiedzi (IMG:style_emoticons/default/smile.gif)

Aha, jeśli nie chcesz używać mysql, wydaje mi się że najlepszym wyjściem byłoby użycie wydajnego memcache. Bardzo prosta implementacja tego jest w php, ale na serwerze musisz mieć zainstalowany moduł.

BTW. Js niedługo dostanie obsługę socketów (albo już ma, ja nie w temacie) więc możesz się nimi zainteresować (IMG:style_emoticons/default/winksmiley.jpg)

Ten post edytował bim2 7.07.2010, 13:52:22
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 19:26