Pogledajte određenu poruku
Staro 22. 05. 2007.   #28
ivanhoe
Ivan Dilber
Sir Write-a-Lot
 
Avatar ivanhoe
 
Datum učlanjenja: 18.10.2005
Lokacija: Bgd
Poruke: 5.320
Hvala: 104
2.344 "Hvala" u 583 poruka
ivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svima
Pošaljite poruku preko Skype™ za ivanhoe
Default

Citat:
Originalno napisao Blood Pogledajte poruku
Hm..imas li negde neki primer kako to napraviti(ja sve sto sam nasao su samo prazne price, nigde neki praktican primer)?

pa za perl postoji dosta primera, postoje i gotovi moduli koji to rade, npr. POE ... Za php ne znam, nisam cuo da je neko pravio TCP server u php-u, mada verovatno moze. Problem sa php-om je ranije bio da on nije pravljen kao shell jezik, mada sad ima CLI, i to sto AFAIK trosi dosta cpu kad radi sa socketima (vise od perla)

Sto se tice cometa u php, tu je obicno varijanta da se koristi apache, da se stavi set_timeout(0), i da se onda napravi beskonacna petlja tipa:
PHP kôd:
while(1) {
   
uradi_nesto();
   if(
$gotovo)
       break;
   
usleep(500);

Na ovu foru je radjena vecina php chatova koji mogu da se nadju na netu.. Problem sa ovim je da prosecna masina sa 2GB moze da podnese nekih 150 instanci apacha (plus mysql), i onda pocne da swapuje... znaci za vise od 10-tak korisnika istovremeno moras da imas dedicated server..

@dee: Ne mogu da ti kazem tacne cifre sta je to "razumno opterecenje", nemam dovoljno iskustva sa tim, a i zavisi od kolicine memorije i raznih drugih podesavanja servera. Select funkcija koja se koristi za proveru otvorenih socketa se na nekim sistemima uspori preko 256 socketa (posto koristi neku binarnu mapu za mapiranja socketa, zaboravio sam detalje). Ono sto sam ja probao je perl TCP server baziran na POE modulu opterecen sa 50 klijenata i to je radilo odlicno (ne secam se tacno koji je server bio u pitanju, ali nije bio mnogo jak). Pitaj Zextru, seca se da je i on radio nesto sa POE i da je to super radilo.

Sto se tice otvaranja socketa per request vs. per session, sve zavisi koliko cesto se radi refresh. Otvaranje socketa je "skupa" procedura, povecava saobracaj i opterecuje CPU i OS (isto je kao otvaranje fajlova), plus ako server forkuje procese za svaki zahtev to dodatno usporava sve i trosi resurse na gomilu otvorene dece, pa ako ces cesto da radis refresh apsolutno se ne isplati raskidati i uspostavljati vezu svaki put. Downside je da moras da imas dedicated server ako planiras da instaliras sopstveni TCP server, ne verujem da ce iko to da te pusti na komercijalnim hostinzima..
__________________
Leadership is the art of getting people to want to do what you know must be done.
ivanhoe je offline   Odgovorite uz citat