delner 0 Newbie Poster

Here's a summary of what I want my service to accomplish:

1. X number of applications send objects to my service via socket programming. This service deserializes these objects from each socket stream, and pools them in a list.

2. The application then acts as a relay to Y number of clients: these clients connect into the service through remoting, and retrieve the object list.

3. The remote clients display the list retrieved from the service, and display it to their users.


Steps 1 & 3 are not of particular concern for this topic but give some context to the problem. As for step 2, my approach in the past has been something like, client uses a common API with the service, calls a function on the service that returns a list or DataSet, and takes the data returned to the client which totally refreshes/repopulates its interface. While functional, this old approach is slow and intensive... especially then the returned list consists of more than say, 5000 items.

What I'm interested in having is some kind of server-to-client call; when the service retrieves/deserializes a new object, it forwards this new object directly to each of its currently connected clients, in an event-style fashion (as opposed to the client asking for the full list of 5000 items every 10 seconds or so). Does remoting have some kind of way to call a method from server-to-client? Or perhaps there's another protocol that better suits this kind of communication?