BotGG

pyt Q

Witam, mam takie pytanie. Znalazlem na necie gotowe funkcje obslugujace podstawowe zadania gg (logowanie, zmiany statosow, wysylanie i odbieranie wiadomosci).
Czyli aby zalgoowac sie odpalam jedna funkcje, aby wyslac wiadomosc odpalam inna, ale w jaki sposob odpalic jakis watek ktory sprawdzalby czy zostaly na moj numer wyslane jakies wiadomosci?
Przyklad takiego skryptu jest tutaj: anakin.us/phplibgadu.phps
dzieki za pomoc pozdrawiam raker

odp A

mam takie pytanie. Znalazlem na necie gotowe funkcje obslugujace podstawowe zadania gg (logowanie, zmiany statosow, wysylanie i odbieranie wiadomosci).
Czyli aby zalgoowac sie odpalam jedna funkcje, aby wyslac wiadomosc odpalam inna, ale w jaki sposob odpalic jakis watek ktory sprawdzalby czy zostaly na moj numer wyslane jakies wiadomosci?
Przyklad takiego skryptu jest tutaj: anakin.us/phplibgadu.phps
Raker pisze:
Sa w necie przyklady odczytywania wiadomosci ale dzialaja one w sposob nie do przyjecia. Jest sobie set_time_limit(0) i petelka while(1) a w niej sprawdzane jest czy cos przyszlo. Problem w tym ze taki skrypt dziala bez konca co powoduje zbedne obciazenie serwera a w sytuacji w ktorej z naszego skryptu korzysta np. kilkaset osob staje sie powaznym problemem. Probowalem roznych sposobow aby odzyskac otwarty socket po zalogowaniu (poprzez pfsockopen) ale bez skutku. Pozostaje wiec co okresliony czas otwieranie socketa, logowanie sie i sprawdzanie czy cos przyszlo co oczywiscie jest srednio efektywne i wygodne. Ma ktos inny pomysl?
pozdrawiam

odp A

Sa w necie przyklady odczytywania wiadomosci ale dzialaja one w sposob nie do przyjecia. Jest sobie set_time_limit(0) i petelka while(1) a w niej sprawdzane jest czy cos przyszlo. Problem w tym ze taki skrypt dziala bez konca co powoduje zbedne obciazenie serwera a w sytuacji w ktorej z naszego skryptu korzysta np. kilkaset osob staje sie powaznym problemem. Probowalem roznych sposobow aby odzyskac otwarty socket po zalogowaniu (poprzez pfsockopen) ale bez skutku. Pozostaje wiec co okresliony czas otwieranie socketa, logowanie sie i sprawdzanie czy cos przyszlo co oczywiscie jest srednio efektywne i wygodne. Ma ktos inny pomysl? Stawia się "demona" (php-cli), takiego z pętelką while(1), który będzie nasłuchiwał połączeń (select()) i logował przychodzące wiadomości. Wiadomości może na przykład wrzucać do bazy, która będzie dostępna dla innych, krótko żyjących procesów php.
Jeśli chcesz coś bardziej w czasie rzeczywistym bez przepuszczania wszystkiego przez bazę, to zamiast niej możesz użyć socketów (otwierać jednorazowe połączenia do lokalnego demona -- szczególnie przydatne do wydawania mu poleceń).

odp A

Stawia się "demona" (php-cli), takiego z pętelką while(1), który będzie nasłuchiwał połączeń (select()) i logował przychodzące wiadomości. Wiadomości może na przykład wrzucać do bazy, która będzie dostępna dla innych, krótko żyjących procesów php. Jeśli chcesz coś bardziej w czasie rzeczywistym bez przepuszczania wszystkiego przez bazę, to zamiast niej możesz użyć socketów (otwierać jednorazowe połączenia do lokalnego demona -- szczególnie przydatne do wydawania mu poleceń). porneL pisze:
Jesli dobrze rozumiem demon musialby analizowac wszelkie polaczenia niezaleznie od usera a to moze stanowic pewien problem bo aby odebrac np. wiadomosc do siebie musi byc zalogowany na siebie i tylko wowczas wiadomosc dostnie dostarczona. Jak wiec to zeralizowac jesli domen ma nasluchowac wszystkiego? Chyba ze cos zle zrozumialem.
Jesli dobrze rozumiem kazdy zalogowany user odpali osobnego demona analizujacego tylko jego polaczenia. To rozwiazywaloby poprzedni problem ale pojawilby sie kolejny - przy wiekszej ilosci userow to moze spowodowac duze obciazenie serwera.
pozdrawiam

Dodaj odpowiedź

Tytuł:

Mail: (w celu weryfikacji posta)