Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ajax]czat oparty na technologi ajax
Forum PHP.pl > Forum > XML, AJAX
faran
Witam,
jestem w trakcie pisania czatu opartego na ajaxie. Każda rozmowa to jedno okno otwierane przez funkcje window.open. Nie wiem jak powiadomić usera o nowej wiadomosci od przeciownego rozmowcy.
Wpadlem na pomysl aby zrobic tak ze jesli w oknie rozmowy ostatnia wiadomosc jest od przeciwnego rozmowcy to robie np. mrygający tytuł okna rozmowy(title). W przypadku gdy autorem ostatniej wypowiedzie jest sie samemu to tytul okna nie mryga. W zasadzie powyższe rozwiązanie wydaje mi się dość dobre. Problem dotyczy zdarzenia polegajacego na odczytaniu wiadomosci od przeciwngo usera, ale nie odpowiedzeniu na nią. Ma ktoś pomysł jak takie zdarzenie rozpoznać i wykonać odpowiednią akcje ?.
Może ma ktoś zupełnie inny pomysł na rozwiązanie tego problemu ?.
sticker
załóż jakiegoś obserwatora na obiekcie okna który jako callback będzie miał funkcje sparawdzającą czy jest nowa wiadomośc dla danej osoby na serwerze
kamil4u
Ja bym nie stosował 'nowych okien', a zwykłego div-a imitującego takie okno. Dzięki temu można wykonać dowolne operacje.

Cytat
Ma ktoś pomysł jak takie zdarzenie rozpoznać i wykonać odpowiednią akcje ?.

Musisz sprawdzać co jakiś czas czy coś 'dostałeś' czy nie. Na podobnej(tej samej) zasadzie działają skrypty shoutbox-u. Przeanalizuj ich kod, a na pewno nie będziesz miał z tym problemów smile.gif
faran
Problem nie polega na sprawdzeniu czy jest nowa/stara wiadomość na serwerze tylko problem jest w tym jak rozpoznać zdarzenie polegające na odczytaniu/zobaczeniu wiadomości przez osobe czatującą.
erix
Chyba ~nospor zmajstrował coś takiego. [;
Crozin
Nie wiem jak działa Twój skrypt, ale zapewne tak, że co np. 3 sekundy wysyłasz AJAXem żądanie do serwera, a on zwraca wiadomości od ostatniego żądania w formie jakiegoś tam XMLa czy czegoś takiego. Masz pewnie jakiegoś callbacka z funkcją, która operuje na otrzymanych danych. To na jej końcu sprawdzasz od kogo pochodzi ostatnia wiadomość - jeżeli nie jest to wiadomość od Ciebie samego, a okno chatu jest nieaktywne to wtedy włączasz to mruganie (window.setInterval()) paska tytułu.
Później, jak okno chatu staje się aktywne, wyłączasz to (window.clearInterval()).
faran
Jak sprawdzić czy okno jest aktywne ?
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.