Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ajax] chat/shoutbox - coś w tym stylu, Odświeżanie strony co pewien interwał
-WideSky-
post
Post #1





Goście







Witam.
Zastanawiam się nad technologią shoutboxa. Chciałbym zrobić coś w rodzaju chatu. Ma to działać tak:
W przeglądarce X ktoś wykonuje akcję (przykładowo wysyła wiadomość o jakiejś treści). W tym samym czasie w przeglądarce Y (na innym komputerze lub na tym samym, to nie gra roli) chcę, żeby ktoś otrzymał tę właśnie wiadomość. Oczywiście konieczne będzie przesłanie tej wiadomości do bazy. Moje pytanie brzmi: co dalej? Nie widzę innego sposobu, jak tylko ustawić timeout w przeglądarce na jakąś wartość i co pewną ilość milisekund wykonywać zapytanie sprawdzające, czy przypadkiem nie ma jakichś nowych wiadomości które należy wyświetlić użytkownikowi. Tylko powstaje problem - już przy 10 użytkownikach zacznie się robić sieczka, jeśli każdy powiedzmy co 250 milisekund będzie próbował wysłać do bazy zapytanie. A aplikacja docelowo ma działać na znacznie więcej uzytkowników niż 10, do tego taki chat nie będzie jedyną jej funkcją, a tylko dodatkiem - cała reszta (spora) będzie uzywać tej samej bazy. Według mnie to będzie masakrycznie obciążające, i nie będzie działać w czasie rzeczywistym. A szczególnie zależy mi na tym, żeby opóźnienia nie były duże, 1 sekunda to już za dużo. Jest jakieś inne wyjście?
Poza tym drugim moim problemem jest to, że ustawianie w przeglądarce czasu, co jaki ma się wykonywać zapytanie, wydaje mi się jakieś nieeleganckie, a na pewno obciąża już nawet samą przeglądarkę... Nie da się od razu po wysłaniu wiadomości do bazy przez kogoś pobierać odpowiednie dane? A nie sprawdzać co określony czas, czy jest coś nowego? Chodzi o to, żeby przy małej aktywności uzytkowników (na przykład nocą) ich przeglądarki nie wysyłały masy niepotrzebnych zapytań. No i o to, że trudno ustalić wartość tego timeoutu, 250 milisekund to w pewnych sytuajcach za często, a w pewnych za rzadko. I wolałbym, gdyby od razu po zmianie zawartości bazy (czy jakiegoś pliku, jeśli istnieje taki sposób dla plików, a nie istnieje dla baz), wszyscy inni pobierali tę zaktualizowaną zawartość. Nie wiem, czy się jasno wyraziłem, ale mam nadzieję, ze ktoś mnie zrozumie. Jest jakieś rozwiązanie dla mnie? Chociaż jakiś kompromis? (Tak, wiem, jest - napisać serwle Javy (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) A jakieś inne? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )
Dziękuję za uwagę.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Przeglądarka co jakiś czas wysyła do serwera zapytanie sprawdzające czy jest jakaś ostatnia wiadomość? Jeśli tak, to co jaki?
To u mnie jest parametryzowalne. Kazdy kto sie zainstaluje mego shouta moze sobie ustawić. U mnie teraz jest chyba 10s. W zupelnosci wystarcza.

Cytat
Czy to nie obciąża całej aplikacji
Pobieram tylko nowe wiadomosci. Jak nie ma nic nowego to do bazy nawet nie lece.

Cytat
Zapisujesz jakoś czas ostatniej wiadomości i porównujesz? jeśli tak, to gdzie?
W zmiennej js, a gdziezbys indziej? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie
- WideSky   [ajax] chat/shoutbox - coś w tym stylu   5.05.2008, 17:08:57
- - marcio   Ajax(mintAjax/jquery)+js i hula sam napisalem   5.05.2008, 17:12:41
- - AxZx   popatrz sie w kod http://axzx.pl/technologie/ uz...   5.05.2008, 18:04:43
- - marcio   Hehe @AxZx bardzo ladne to masz naprawde gratulacj...   5.05.2008, 18:17:32
- - WideSky   @AxZx No nawet bardzo git, bym powiedział Bardzo ...   5.05.2008, 18:37:57
|- - AxZx   Cytat(WideSky @ 5.05.2008, 19:37:57 )...   5.05.2008, 21:03:48
- - marcio   CytatPróbowałem się zarejestrować, ...   5.05.2008, 19:12:04
- - WideSky   Nie no, link do wikipedii specjalnie potrzebny mi ...   5.05.2008, 19:31:37
- - marcio   @Nospor o ile sie nie myle napisal cos takiego dzi...   5.05.2008, 19:44:43
- - nospor   CytatProblem jest w tym, że ja bardziej chc...   5.05.2008, 19:46:08
- - WideSky   Czyli potwierdzają się moje przypuszczenia, że alb...   5.05.2008, 20:12:28
- - nospor   CytatPrzeglądarka co jakiś czas wysyła do serwera ...   5.05.2008, 20:18:47
|- - WideSky   Cytat(nospor @ 5.05.2008, 20:18:47 ) ...   5.05.2008, 20:24:40
- - nospor   Sorki, troche ci źle powiedzialem. W zmiennej js p...   5.05.2008, 20:30:10
- - WideSky   Ok, to jeszcze ostatnie pytanie Co rozumiesz prze...   5.05.2008, 20:35:30
- - nospor   Ja nie wysylam postow metodą normalną. Jesli ktos ...   5.05.2008, 20:38:05
|- - WideSky   Cytat(nospor @ 5.05.2008, 20:38:05 ) ...   5.05.2008, 20:44:31
- - Gość   Nie mam opcji edytuj Bo chciałem zapytać jak z sz...   5.05.2008, 20:39:35
- - szawel   opcja 2 jest duzo szybsza bo jesli chcesz miec opu...   5.05.2008, 20:44:31
- - nospor   ad1) najpierw polecisz do skryptu php a dopiero po...   5.05.2008, 20:45:55
- - WideSky   Wiem właśnie, że 1 sekunda jest nieosiągalna, jeśl...   5.05.2008, 20:48:52
- - WideSky   No rzeczywiście, tutaj zupełnie inaczej to wygląda...   5.05.2008, 21:07:46


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: 10.10.2025 - 08:31