alin19
17th June 2009, 13:38
ma intereseaza si pe mine ce se poate folosi pentru a se face o comunicare intre client si server printro pagina de net;
intr-o cerere asincrona (clientul face cerere catre server iar serverul ii raspunde);
pe mine ma intereseaza ca sa ramana o conexiune tot timpul deschisa si clientul sa ramana intr-un 'listen' de la server;
iar serverul oricand are ceva date de trimis sa le trimita fara sa astepte o cerere de la client;
din cate stiu eu (sper sa nu ma insel) cu action script si un applet java se poate face asa ceva;
mai exista si alceva?
ps: neaparat intr-un browser sa fie comunicarea, chiar daca conexiunea cu serverul se face prin alt port;
shiva
17th June 2009, 15:38
Aim sori, da' aberezi cu gratie
"comunicare intre client si server printro pagina de net" - adica folosesti protocolul HTTP. Studiaza-l!
"sa ramana o conexiune tot timpul deschisa si clientul sa ramana intr-un 'listen' de la server" - serverul e cel care asculta, nu clientul! Regandeste aplicatia/solutia!
Tot ce poate clientul e sa verifice, la un anumit interval de timp ( 5 min, de ex.), daca exista ceva date pt. el. Si fiindca vorbim de web si servere de web, un interval mic de timp + clienti multi poate ingenunchea un server ( atac DoS - denial of service).
3oaie
17th June 2009, 16:09
Practic tu vrei ca serverul sa faca push spre client.
http://en.wikipedia.org/wiki/Comet_(programming)
alin19
17th June 2009, 21:19
CITAT (shiva @ 17th June 2009, 16:38)

Aim sori, da' aberezi cu gratie
"comunicare intre client si server printro pagina de net" - adica folosesti protocolul HTTP. Studiaza-l!
"sa ramana o conexiune tot timpul deschisa si clientul sa ramana intr-un 'listen' de la server" - serverul e cel care asculta, nu clientul! Regandeste aplicatia/solutia!
Tot ce poate clientul e sa verifice, la un anumit interval de timp ( 5 min, de ex.), daca exista ceva date pt. el. Si fiindca vorbim de web si servere de web, un interval mic de timp + clienti multi poate ingenunchea un server ( atac DoS - denial of service).
hm...
cred ca teai grabit cand ai zis ca aberez, in cel mai rau caz nu am fost eu destul de explicit
pentru ca stiu ca este posibil, nu am spus sa foloseasca protocolul HTTP, ci sa foloseasca protocolul HTTP pentru a incarca pagina cu appletul java de exemplu iar appletul sa se conecteze la un server cu care sa comunice;
iti pot si link-uri daca vrei de locuri unde se intampla asta (numa ca este cu action script)
@3oaie merci;
ma uit acum pe ce miai dat;
sergiu_spooky
18th June 2009, 19:31
Serverul poate să fie scris în ce limbaj vrei, că ai posibilități nenumărate: C, Java, PHP, Python, bla, bla și bla.
Evident alegerea o faci în funcție de factorii performanță și simplitate.
Apoi clientul. Java, Flash sau Silverlight sunt variantele pe care le știu eu. Probabil mai sunt câteva prea obscure sau vechi.
Poți încerca chiar și să îți scrii un client Flash și apoi să îl folosești pe post de "gateway", comunicând cu el prin ExternalInterface cu JavaScript.
Nu îți mai rămâne decât să stabilești un protocol care să funcționeze bine peste TCP. Probabil vrei să mergi pe serializare/deserializare.
Toate astea le găsești și gata făcute. Pentru server Java / client Flash există BlazeDS. Mai este și PHP/Flash, AMFPHP.
denverash
19th June 2009, 18:58
metoda este veche si folosita pentru a nu-ti mai batea capul cu firewalluri sau sa poti folosi proxy-uri de http. Pe scurt ca sa primesti date la client din server:
1. clientul deschide o conexiune pe http pe o pagina web pe server, poate fi un simplu get sau post
1. a. clientul ramane in asteptare sa citeasca raspuns de la server (adica sa-i vina pagina pe care a cerut-o)
2. serverul primeste cererea (php, c++, asp, nu prea conteaza)
2. a. serverul ramane blocat pana are ceva de trimis la client sau pana atinge un timeout sau pana se intrerupe legatura cu clientul (depinde de configurarea serverului web = apache, iis ...)
3. clientul ajunge la urmatoarele variante
3.a. primeste date de la server (intr-un format oarecare, parsabil, ex. xml daca vrei ceva gen ajax)
3.b. legatura cu serverul se intrerupe iar clientul redeschide o noua legatura si o ia de la #1
3.c. legatura nu se intrerupe, dar serverul nu are nimic de zis clientului, acesta o ia iar de la #1
daca vrei de ex. sa nu-ti bati capul cu citiri pe socketi si ai nevoie sa faci rapid, pui un php pe apache si rezolvi problema in 10 minute. Nu te "chinui" cu flashuri, actionscropturi, javauri pe client ca n-are rost. Daca-ti trebuie pentru o pagina web pune un jquery sau mootols si faci cererea cu ajax.
daca ai nevoie de ceva mai complex (Servicii care trimit date "in timp real" clientului prin http) pui un asp sau un java si te joci cu threadurile.
sergiu_spooky
19th June 2009, 19:19
Cum știm bine (aproape) cu toții nu ai cum să primești date de la server din inițiativa serverului. Folosind protocolul HTTP cel mai aproape de așa ceva ești prin polling, dar, cum s-a discutat deja, nu e o soluție prea bună dacă te aștepți la mulți clienți simultan și e departe de real-time defapt.
denverash
19th June 2009, 19:31
omul a intrebat cum se face, nu a zis ca o sa aiba 100k clienti simultan. evident ca un server web care tine fiecare client pe un thread o sa intepeneasca destul de repede la trafic mare si nu-l mai rezolvi decat cu un restart din buton.
"ma intereseaza si pe mine ce se poate folosi pentru a se face o comunicare intre client si server printro pagina de net;"
dani.user
19th June 2009, 19:39
Si a dat tot el si o rezolvare, asa ca, ce mai trebuie lamurit?
QUOTE
pentru ca stiu ca este posibil, nu am spus sa foloseasca protocolul HTTP, ci sa foloseasca protocolul HTTP pentru a incarca pagina cu appletul java de exemplu iar appletul sa se conecteze la un server cu care sa comunice;
alin19
22nd June 2009, 18:17
CITAT (dani.user @ 19th June 2009, 20:39)

Si a dat tot el si o rezolvare, asa ca, ce mai trebuie lamurit?
multumesc baieti; eu vroiam sa stiu daca mai sunt si alte solutii pentru ca nu am destule cunostinte de java sau actionscript;
am citit ce contine link-ul dat de @3oaie; este intradevar cam neglijent
o sa ma mai documentez putin si o sa merg pe ceea ce mi-a spus @sergiu_spooky;
i0nutzb
28th June 2009, 20:05
APE? (scuze pentru întârziere)
In curand... autoevolution.ro
Teste, stiri, ghiduri, jurnale, forum si multe altele!
Aceasta este o versiune simplificată a paginii originale. Pentru a vizita versiunea originala
click aici.