Callback Operations
WCF supports allowing a service to call back to its clients. During a callback, in many respects the tables are turned: the service is the client, and the client becomes the service (see Figure 5-1). Callback operations can be used in a variety of scenarios and applications, but they are especially useful when it comes to events, or notifying the client(s) that some event has happened on the service side.
Figure 5-1. A callback allows the service to call back to the client
Callbacks are also commonly referred to as duplex operations. There are two immediate challenges to supporting duplex communication. First, how does the service know where the callback endpoint is? Second, how does the client facilitate hosting the callback object?
Not all bindings support callback operations. Only bidirectional-capable bindings
support callback operations. For example, because of its connectionless nature, HTTP cannot
be used for callbacks, and therefore you cannot use callbacks over the BasicHttpBinding
or the WSHttpBinding
. To support callbacks over HTTP, WCF offers the WSDualHttpBinding
, which actually sets up two WS channels: one
for the calls from the client to the service and one for the calls from the service to the
client. WCF also offers callback support for the NetTcpBinding
and the NetNamedPipeBinding
, because by their very nature, the TCP and the IPC protocols support ...
Get Programming WCF Services, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.