DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   PHP (http://www.devprotalk.com/forumdisplay.php?f=9)
-   -   bigspy backend (http://www.devprotalk.com/showthread.php?t=2926)

MrSteel 22. 05. 2007. 09:40

ti ispostuj formu ali u sustini i dalje radi LoadVars.load(URL) u flash-u

dee 22. 05. 2007. 10:53

Citat:

Originalno napisao MrSteel;
ti ispostuj formu ali u sustini i dalje radi LoadVars.load(URL) u flash-u

cini se da ce ipak tako i biti, bar za pocetak dok nema nesto korisnika. iako, problem mi je sto ne znam sta ocekivati u realnom slucaju, konkretno, recimo da radim LoadVars svakih 2-3 sekunde, do koliko korisnika ovo rjesenje moze funkcionirati pristojno?

Citat:

Originalno napisao ivanhoe (Napišite 35687)
nije tesko resiti klijenta, ovde je frka da se odradi serverski deo tako da kad ima dosta klijenata:
1) ne pojede svu memoriju
2) radi dovoljno brzo sa gomilom otvorenih socketa

za razuman nivo saobracaja to nije mnogo tesko napisati u npr. perlu, ali naravno ne treba izmisljati toplu vodu, ima gomila (polu)gotovih resenja...

ivanhoe, mozes li molim te biti konkretan, sta znaci 'razuman nivo saobracaja'? koji su nedostaci PHP rjesenja na server strani za socket server? i ako imas pri ruci, ajd molim te stavi neki link prema tim (polu)gotovim rjesenjima...


puno hvala svima jos jednom

MrSteel 22. 05. 2007. 11:15

po pitanju server strane service moze imati vise korisnika nego socket
socket je trajna konekcija dok je service on request
cak bi se moglo reci i da service request kao sto je digg moze imati neograniceno korisnika i to je naravno jedan od razloga sto su uradili servis, pored najvaznijeg koji je taj sto servis omogucava 3rd party developerima da odradjuju biznis i promovisu digg (i opet prosire broj korisnika / pregledaca digg-a)

socket pak ima svoja ogranicenja u broju korisnika nakacenih,
i nemoj koristiti PHP za to resenje ako se odlucis
perl je super, java je super

sta ti tacno zelis da uradis?

OT: zanimljiv link, povezan sa ovim http://www.agiledelta.com/product_efx.html

dee 22. 05. 2007. 11:24

Citat:

Originalno napisao MrSteel (Napišite 35699)
socket pak ima svoja ogranicenja u broju korisnika nakacenih,

da, to me i zanimalo, neka usporedba request/socket slucaja ovisno o broju nakacenih korisnika.


Citat:

Originalno napisao MrSteel (Napišite 35699)
i nemoj koristiti PHP za to resenje ako se odlucis
perl je super, java je super
sta ti tacno zelis da uradis?

sa perlom sam na Vi, o javi tek pojma nemam... a daju se napisati PHP skripte koje otvaraju socket i salju klijentu sto mu vec treba (znaci prakticno glume server). na to sam mislio. (ako me to pitas)

MrSteel 22. 05. 2007. 11:47

mislio sam sta tacno pravis :)

dee 22. 05. 2007. 12:03

a, sorry :)

schema je:

- korisnici na sajtu upisuju novi item (item je naslov+link)
- korisnici mogu listati/komentirati poslane iteme
- korisnicima se prikazuje lista zadnje dodanih (prica s ovog topica) itema

recimo da je to neki osnovni okvir.

Blood 22. 05. 2007. 13:12

Citat:

Originalno napisao ivanhoe (Napišite 35661)
AFAIK, comet je tehnika drzanja otvorene konekcije, gde se podaci push-uju, a ne pull-uju... znaci kod cometa server ceka da se nesto desi i onda shibne podatke klijentima, a klijenti sve vreme sede i cekaju podatke, bez da cimaju server svakih xyz (mili)sekundi.

Hm..imas li negde neki primer kako to napraviti(ja sve sto sam nasao su samo prazne price, nigde neki praktican primer)?

ivanhoe 22. 05. 2007. 13:55

Citat:

Originalno napisao Blood (Napišite 35705)
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..

Blood 23. 05. 2007. 17:52

@dee:
Mozda ovaj clanak pomogne:
http://ajaxian.com/archives/effectre...-to-ajaxiancom

ivanhoe 23. 05. 2007. 18:26

Citat:

Originalno napisao Blood (Napišite 35754)

ovo resenje jeste jako prosto za implementaciju, ali oni svakih 20 sekundi update-uju news box, a pritom koriste wordpress, sto znaci da svakih 20 sekundi:
- apache dobije zahtev, i prosledi ga nekom svom detetu na obradu. Ako nema dovoljno preforkovane dece, treba isforkovati novi apache proces
- php modulu ucita i isparsira potrebne php skripte (a posto koriste wordpress to je tipa 5-10 includova, zavisi koliko pluginova imaju)
- wordpress odradi sve potrebne upite na bazi (jedno bar 3-4)
- ovaj njihov plugin procita sadrzaj direktorijuma, i inkluduje fajl sa vestima

i to tako za svakog klijenta koji ima otvoren ajaxian u browseru... mozda sam ja staromodan, ali po meni je to daleko od optimalnog pristupa..


Vreme je GMT +2. Trenutno vreme je 00:50.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.