I work in a chat application where I use Silverlight on the client side and wpf on the server side. Right now, communication is based on Sockets: I have different classes of messages that I serialize and send over TCP.
I am starting to understand that creating a separate message class for each possible communication scenario is quite an overhead and consider switching to WCF.
Therefore, I need to know the following things:
It seems that all the communication using WCF is based on user-tested calling methods from my WCF service. Is there a way to find out which client is invoking a particular method? This is very important for my application.
Does WCF tell my application when a client disconnects (for example, closes the browser window where the Silverlight client is running) from the server? This is also very important.
Is the method completely asynchronous? If so, is it necessary to redirect the call of each method to the main thread of the server application?
Does each client connection have its own thread? How many simultaneous connections could be made by a server (running on a computer with moderate power) if the clients called the conversation methods every 2 seconds? I just need a grade (10, 100, 1000 or more). "More" would be great;)
Perhaps I am completely wrong, and WCF does not work at all based on the connection. Then I will have to find a temporary solution to manage the list of active connections.
Thank you for your help! Andrey
Andrej
source share