I am designing a new project and I am trying to figure out ways to push data/events from a server application to a client application (ie a WPF application).
The two I know of are:
- Pub/Sub (ie NServiceBus)
- Full Duplex WCF
Are there other solutions for the server to talk to开发者_StackOverflow中文版 the client? If so what are they?
Query Notification might be useful ,
Query notifications were introduced in SQL Server 2005 and SQL Server Native Client. Built upon the Service Broker infrastructure introduced in SQL Server 2005, query notifications allow applications to be notified when data has changed. This feature is particularly useful for applications that provide a cache of information from a database, such as a Web application, and need to be notified when the source data is changed.
Also please read this topic : Receiving Database Change Notifications Using the WCF Service Model
In ASP.NET applications : Use Pokein ASP.NET comet AJAX library (Reverse-AJAX Server push)
PokeIn gives you an enhanced JSON functionality to make your server side objects available in client side. Simply, it is a Reverse Ajax library which makes it easy to call JavaScript functions from C#/VB.NET and to call C#/VB.NET functions from JavaScript. It has numerous features like event ordering, resource management, exception handling, marshaling, Ajax upload control, mono compatibility, WCF & .NET Remoting integration and scalable server push.
PokeIn is compatible with Mono and All the .Net versions(>1.1).
Above diagram shows, how PokeIn generates dynamic JavaScript codes from a .NET class to provide interaction on both side.
PokeIn organizes connections and generates server side object instances for each client. So, you can be sure about the interactions with specific target. PokeIn follows the connection state of each client to tell you one of your users has just disconnected. Also, It groups client side connections by server side session ids. Thus, you know how many views active on a single session.
PokeIn creates a channel between the client and server side static resource. It simply manages resources which specific to a client session and/or application wide.
PokeIn provides secure channels (view specific decoding and session/view cross check) . Also, it gives you to control for communication handlers. So, you may add some extra security controls into these layers.
PokeIn is a comprehensive solution. It has many features that any web application may need. It has been used in many projects like an online spreadsheet application to browser based games.
Important Notice PokeIn definer class feature is provided to make your communication needs between the client and server in a solid way. Make sure your implementation efficiently uses it.
A bunch of web solutions are outlined at http://en.wikipedia.org/wiki/Comet_%28programming%29. Of course, these only apply for web applications, but this list may still be useful to you.
You can also use any web transfer, simply increase the timeout from the caller. Then at the server, simply block until you have data to send.
精彩评论