[ MarkoGagi @ 31.08.2010. 23:05 ] @
Pozdrav drugari,

interesuje me sledeca situacija.

Imam client-server applikacije koje komuniciraju. Server u odredjenom trenutku salje poruku svim klijentima...
E sad, posto ne znam koliko server (TCPListener-TCPClient) maksimalno klijenata moze da ima a da svima posalje poruku brzo i da ne puca.
Jer ce klijenata mozda biti i 1000.

Dosao sam na sledecu ideju. Pokrenuti 2-3 servera koji rade isto.

I kada se client startuje, da kontaktira webservice i da dobije ip adresu servera koji ima najmanje klijenata. Pa da se konektuje na taj server.

Dobra ideja, a da li ovako nesto moze da se odradi i jel vredi?

Jer je potrebno da klijenti i serveri komuniciraju sa web servisom.

Ili mislite da ce server moci da opsluzi 1000 klijenata?


Hvala.
[ mmix @ 01.09.2010. 07:37 ] @
1000 korisnika je nista za sockete. A koliko dugo ce to da traje zavisice ti ponajvise od velicine poruke i odlaznog bandwidtha.

Dalje, kako uopste planiras da server posalje podatke klijentu? Malo me zbunjujes sa tim "web servis" u naslovu, ako radis web servis to onda ide preko http protokola koji je iznad socketa. Sa druge strane ako ne radis web servis nego socket komunikaciju i poruka je ista za sve (ili mzoes da se prilagodis da je ista za sve) mozda da pogledas malo o multicast protokolu i mozda cak i broadcast protokolu (mnogo jednostavniji ali radi samo ako su svi klijenti na istom subnetu, mada sumnjam ako ce biti 1000 korisnika, to se obicno particionise). Multicast ti omogucava da jednim jedinim paketom pokrijes ako treba i stotine hiljada korisnika, a ruteri i mrezna oprema obezbedjuju kopiranje i multiplikaciju paketa takoda svaki registrovani korisnik dobije jedan primerak.
[ MarkoGagi @ 01.09.2010. 12:30 ] @
Poruka sadrzi 2 reci.

Poruka servera je ista za sve klijente.
Saljem im tako sto u serveru imam array listu svih klijenata, prolazim kroz nju i saljem svakom.

Znaci ova ideja sa web servisom je nepotrebna ako kazes da server moze da nosi 1000 klijenata?

Ne znam kako bih odradio to ako je potrebno, ideja je da 2-3 servera konstantno salju trenutni broj klijenata web servisu, tako da klijent kada se startuje dobije od servisa ip adresu servera sa najmanjim brojem konektovanih klijenata.

Ne mora to biti web servis, mozda isto aplikacija, kao neki server...
[ mmix @ 01.09.2010. 12:50 ] @
ti si idealan kandidat za multicast obavestavanje, bar sto se tice obavestavanja klijenata. U svakom slucaju dao si premalo informacija o tome sta radi server za klijenta da bi dobio definitivan odgovor.
[ MarkoGagi @ 01.09.2010. 14:48 ] @
Pa pazi ovako:

Svaki klijent nakon uspesnog logovanja se konektuje na server.
Prvo posalje serveru korisnicko ime a server to ime ubaci u listu konektovanih klijenata i odgovori ok.

Nakon toga klijenti cekaju na poruku od servera, nakon cega preduzimaju odredjene akcije...

Server ce uvek poslati istu poruku svima... i tako svakih par sekundi...

Te poruke su npr: start, stop, restart.. ne bitno...

Mislis da je multicast bolje resenje od ovog da server prolazi kroz listu i salje svim klijentima?

Da li u tom slucaju moram da menjam samo kod u serveru?
Ima li neki primer?

Hvala.
[ mmix @ 01.09.2010. 15:04 ] @
google is your friend
http://www.codeproject.com/KB/IP/multicast.aspx