Trabajo en una aplicación tipo chat, donde uso Silverlight en el lado del cliente y wpf en el lado del servidor. En este momento, la comunicación se basa en Sockets: tengo diferentes Message-Classes que serializo y envío a través de TCP.Zócalos vs. WCF
Empiezo dándome cuenta de que la creación de una clase de mensaje separada para cada escenario de comunicación posible es una sobrecarga y considero pasar a WCF.
por lo tanto necesito saber las siguientes cosas:
Parece que toda la comunicación utilizando WCF se basa en los clientes callind métodos de mi servicio WCF expuestos. ¿Hay alguna manera de saber qué cliente llama un determinado método? Esto es bastante importante para mi aplicación.
¿WCF notifica a mi aplicación cuando un cliente se desconecta (por ejemplo, cierra la ventana del navegador donde se ejecuta el cliente de Silverlight) desde el servidor? Esto también es bastante importante.
¿Las llamadas al método son completamente asíncronas? Si es así, ¿debo redirigir cada llamada de método al hilo principal de la aplicación del servidor?
¿Cada conexión de cliente tiene su propio hilo? ¿Cuántas conexiones simultáneas podría manejar el servidor (que se ejecuta en una PC con una potencia razonable) si los clientes llaman a los métodos cada 2 segundos? Solo necesito una estimación (10, 100, 1000 o incluso más). "Más" sería genial;)
Quizás estoy completamente equivocado y WCF no funciona en absoluto basado en la conexión. Entonces tendría que encontrar una solución para seguir administrando una lista de conexiones activas.
Gracias por su ayuda! Andrej
No tengo respuestas sólidas para usted, así que lo dejo en un comentario. Le sugiero encarecidamente que obtenga una copia de "Programming WCF Services 2nd Edition" de Juval Lowy. Sus libros deben responder todas sus preguntas. Respuesta corta: ciertamente puede manejar todos sus escenarios con WCF. El cómo se puede encontrar en el libro que mencioné. –