I am working on WCF client-server app. where the client has to be constantly synchronized with the server (at least every 10 seconds). At the moment I'm polling the server to see if anything has changed. If so, the changes (sometimes tens of db records) are pulled down to the client.
My design felt a bit clunky so I had a look at how gtalk (and other XMPP) clients keep in-sync. According to this Wikipedia article, the XMPP dropped the polling approach and is now using HTTP binding only.
I presume it is possible to do the same thing for WCF. I think 99% of the WCF apps today simply 1) opens a connection, 2) does the transaction, and 3) closes the connection.
So my questions are:
- Does anyone know of an example of how to implement such an asynchronous binding approach with WCF?
- What effect doe that have on the number of clients a server can accommodate, since multiple connections will have to be maintained.
- Any other drawbacks?