[ reiser @ 03.07.2011. 12:25 ] @
Pisem klijent za komunikaciju izmedju vise korisnika. Svi korisnici se prilikom startovanja klijenta konektuju na server, koji cuva statistiku o njima, avatare, itd. Kada korisnik klikne na nekog drugog korisnika, klijent treba da mu prikaze njegov avatar i statistiku.

Sada bih zeleo da cujem vase ideje kako je najbolje odraditi neku vrstu P2P razmene tih podataka izmedju korisnika, jer bih previse opteretio server ako bih svaki put kada treba da prikazem podatke o nekom korisniku te podatke vukao sa servera. Jel postoji neka vrsta direktne komunikacije izmedju dva kompjutera preko UDPa recimo, tako da kad korisnik klikne na nekog drugog korisnika u listi, u pozadini klijent izvrsi transakciju sa tim kompjuterom i uzme od njega podatke, tj avatar i statistiku ?
[ rambo @ 04.07.2011. 21:40 ] @
Ako se ne varam, Skype radi baš tako.

Ono što možeš da uradiš je da od servera dobiješ listu IP adresa svih trenutno aktivnih klijenata, i onda se, kada želiš da dobiješ te podatke, direktno povezuješ sa tim klijentom umesto ponovo sa serverom.

Avatari, statistika i ostali podaci o klijentima se obično čuvaju na serveru. Ono što ti možeš da uradiš da bi smanjio komunikaciju sa serverom je da uradiš neku vrstu keširanja tih podataka kod klijenta. Recimo, možeš da na serveru napraviš MD5 hash trenutnih podataka o svakom klijentu. Zatim, klijent od servera traži taj MD5 i upoređuje ga sa svojim koji predstavlja lokalne keširane podatke. Ako se razlikuju, znači da se nešto promenilo na serveru, što znači da trebaš da od servera tražiš refresh podataka. U suprotnom, na klijentu imaš aktuelne podatke.

Nadam se da će ti ovo dati ideju kako dalje da radiš
[ reiser @ 04.07.2011. 21:50 ] @
Mislim da nisam najjasnije postavio problem. Ja ne znam kako da razmenim podatke sa drugim racunarom direktno, tj kako da se povezem na njega ako imam IP ? Keshiranje sam vec odradio i funkcionise na slican nacin kao sto si ti opisao. A svaki klijent prilikom konektovanja preuzme sa servera svoj avatar/statistiku tako da nema potrebe da se drugi klijenti povezuju na server da bi trazili statistiku za druge korisnike, vec mogu direktno na tog korisnika. :)

Dakle, kako da povezem dva racunara preko UDP-a, ili sta god ? :)
[ reiser @ 05.07.2011. 02:19 ] @
OK, skontao sam, odradicu preko TCP-a, prostije je nego sto sam mislio :)
[ Aleksandar Đokić @ 05.07.2011. 19:52 ] @
ako je u pitanju chat bolji ti je udp
[ reiser @ 05.07.2011. 20:50 ] @
Nije chat nego transfer statistike, avatara i u buducnosti verovatno jos kojekakvih fajlova :) Chat je vec odradjen i ide preko servera i UDP protokola.

[Ovu poruku je menjao reiser dana 05.07.2011. u 22:36 GMT+1]