Lavoro su un'applicazione simile alla chat, dove utilizzo Silverlight sul lato client e wpf sul lato server. In questo momento la comunicazione è basata su Socket: ho diverse classi di messaggi che serializzo e invio via TCP.Sockets vs. WCF
Inizio a rendermi conto che la creazione di una Classe messaggio separata per ogni possibile scenario di comunicazione è piuttosto un sovraccarico e prendere in considerazione il passaggio a WCF.
Perciò ho bisogno di conoscere le seguenti cose:
Sembra che tutta la comunicazione utilizzando WCF si basa sui client callind esposti metodi dal mio servizio WCF. C'è un modo per sapere quale client chiama un determinato metodo? Questo è abbastanza importante per la mia applicazione.
WCF notifica la mia applicazione, quando un client si disconnette (ad esempio chiude la finestra del browser in cui è in esecuzione il client Silverlight) dal server? Anche questo è abbastanza importante.
Il metodo chiama completamente asincrono? In tal caso, devo reindirizzare ogni chiamata di metodo al thread principale dell'applicazione server?
Ogni connessione client ha una propria discussione? Quante connessioni simultanee potrebbe gestire il server (in esecuzione su un PC dotato di alimentazione ragionevole) se i client chiamano i metodi dire ogni 2 secondi? Ho solo bisogno di una stima (10, 100, 1000 o anche di più). "Altro" sarebbe fantastico;)
Forse ho sbagliato completamente e WCF non funziona affatto basato sulla connessione. Quindi dovrei trovare una soluzione alternativa per gestire ancora un elenco di connessioni attive.
Grazie per il vostro aiuto! Andrej
Non ho risposte solide per te, quindi lascerò questo in un commento. Suggerisco caldamente di prendere una copia di "Programming WCF Services 2nd Edition" di Juval Lowy. I suoi libri dovrebbero rispondere a tutte le tue domande. Risposta breve: puoi certamente gestire tutti i tuoi scenari con WCF. Il come si può trovare nel libro che ho menzionato. –