Jan, probably I won't be able to give you the answer - I'm not sure if I know what problem are you trying to solve and haven't done anything similar. But maybe you could implement some sort of server-side mailbox for incoming messages for each client and use periodic polling over http to retrieve them. What are your latency requirements? If it's for GUI it will probably be enough to poll every 10 seconds. And if you're working with javascript maybe you could take a look at Ext.Direct and PollingProvider (this is a part of extjs library) - but you could roll your own solution as well.
RG On 23 Kwi, 17:18, Jan Limpens <[email protected]> wrote: > what tool might I want to look for, then? > > On Tue, Apr 20, 2010 at 2:39 AM, nightwatch77 <[email protected]>wrote: > > > > > > > By 'insisting on using rsb' I was implying that probably RSB is not > > the tool you are looking for... > > > On 19 Kwi, 23:47, Jan Limpens <[email protected]> wrote: > > > Makes perfect sense, seems like a lot of work though. > > > You say "insist on using rsb..." - what does this imply? > > > > On Mon, Apr 19, 2010 at 4:18 PM, nightwatch77 <[email protected] > > >wrote: > > > > > Jan, to efficiently receive messages by polling you have to store them > > > > at the server and get them all in a batch. So, if you insist on using > > > > RSB, you'll have to implement a buffering consumer that will sit on > > > > the server and collect messages directed to it and allow you to > > > > retrieve them all by a WCF call. Something like a 'gateway' between > > > > synchronous WCF and asynchronous RSB. I'm thinking about something > > > > like an additional RSB endpoint that would forward your WCF messages > > > > to RSB infrastructure (but substituting its own endpoint name as a > > > > reply address - like in NAT) and keep all incoming replies in a buffer > > > > so your client app could get them by polling. Does it make any sense? > > > > > On 19 Kwi, 18:37, Jan Limpens <[email protected]> wrote: > > > > > From what I can see a (occasional) consumer is just registered to the > > > > > container by its name, right? > > > > > Probably there is some facility somewhere, that inspects these > > components > > > > > and finds out who subscribed to what. > > > > > > So, if my sl control wants to 'subscribe' to a reply, it has to tell > > its > > > > > service instance about that. Do you have any idea, of how I could > > make > > > > such > > > > > a service instance make either > > > > > a) subscribe to the reply without it implementing the interface and > > being > > > > > installed in the container? or > > > > > b) use dynproxy and some kind of factory to generate the consumer on > > the > > > > > fly? This instance could the be registered to the container and > > disposed > > > > of > > > > > after use. > > > > > > Or any other better idea? Is my idea feasible at all? > > > > > > On Mon, Apr 19, 2010 at 1:16 PM, Ayende Rahien <[email protected]> > > > > wrote: > > > > > > Jan, > > > > > > Reply is always async with RSB > > > > > > > On Mon, Apr 19, 2010 at 6:29 PM, Jan Limpens < > > [email protected] > > > > >wrote: > > > > > > >> Ah, while *subscribe *is fine, my above post talks of the *reply > > > > *case... > > > > > >> need to read some code, it seems :) > > > > > > >> On Mon, Apr 19, 2010 at 11:50 AM, Jan Limpens < > > [email protected] > > > > >wrote: > > > > > > >>> While it is dead simple to publish/send messages to a bus exposed > > via > > > > > >>> wcf, has anyone ever tried to subscribe to it? > > > > > > >>> while this makes the kinda-stateful comet connection between > > client > > > > and > > > > > >>> server > > > > > > >>> protected override void InitializeRuntime() > > > > > > >>> { > > > > > >>> this.AddServiceEndpoint( > > > > > > >>> typeof(IStockService), > > > > > >>> new PollingDuplexHttpBinding(), > > > > > > >>> new Uri(_serviceBusUri)); > > > > > >>> base.InitializeRuntime(); > > > > > >>> } > > > > > > >>> Then I'd could expose the bus like that: > > > > > > >>> [ServiceContract] > > > > > >>> public interface IServiceBusService > > > > > >>> { > > > > > >>> [OperationContract] > > > > > >>> void Publish<T>(T message); > > > > > > >>> [OperationContract] > > > > > >>> void Subscribe<T>(Action<T> callback); // don't like > > that > > > > this callback goes across the wire, while all i want is the type. this > > > > should star at the client... > > > > > > >>> } > > > > > > >>> I wonder how to go on after that. How does the message find it's > > > > > >>> subscriber? For instance if I > > > > > > >>> _busSrv.Subscribe<GetSearchResultMessage>((e)=> > > > > > >>> MessageBox.Show(string.Join(e.Result, ", "))) > > > > > >>> _busSrv.Send(send a new SearchMessage(searchTerm: "rhino")) > > > > > > >>> How would _busSrv be able to tell if a certain > > GetSearchResultMessage > > > > is > > > > > >>> for a certain client? > > > > > > >>> How could _busSrv add itself to the dictionary of > > > > GetSearchResultMessage > > > > > >>> consumers, without implementing the interface > > > > > >>> ConsumerOf<GetSearchResultMessage>? There are _many_ types of > > > > messages, and > > > > > >>> I would want to avoid to have to write and maintain all that > > > > boilerplate > > > > > >>> code... > > > > > > >>> -- > > > > > >>> Jan > > > > > > >> -- > > > > > >> Jan > > > > > > >> -- > > > > > >> You received this message because you are subscribed to the Google > > > > Groups > > > > > >> "Rhino Tools Dev" group. > > > > > >> To post to this group, send email to > > [email protected] > > > > . > > > > > >> To unsubscribe from this group, send email to > > > > > >> [email protected]<rhino-tools-dev%2Bunsubscribe@ > > > > > >> googlegroups.com> > > <rhino-tools-dev%2Bunsubscribe@ googlegroups.com> > > > > <rhino-tools-dev%2Bunsubscribe@ googlegroups.com> > > > > > >> . > > > > > >> For more options, visit this group at > > > > > >>http://groups.google.com/group/rhino-tools-dev?hl=en. > > > > > > > -- > > > > > > You received this message because you are subscribed to the Google > > > > Groups > > > > > > "Rhino Tools Dev" group. > > > > > > To post to this group, send email to > > [email protected]. > > > > > > To unsubscribe from this group, send email to > > > > > > [email protected]<rhino-tools-dev%2Bunsubscribe@ > > > > > > googlegroups.com> > > <rhino-tools-dev%2Bunsubscribe@ googlegroups.com> > > > > <rhino-tools-dev%2Bunsubscribe@ googlegroups.com> > > > > > > . > > > > > > For more options, visit this group at > > > > > >http://groups.google.com/group/rhino-tools-dev?hl=en. > > > > > > -- > > > > > Jan > > > > > > -- > > > > > You received this message because you are subscribed to the Google > > Groups > > > > "Rhino Tools Dev" group. > > > > > To post to this group, send email to > > [email protected]. > > > > > To unsubscribe from this group, send email to > > > > [email protected]<rhino-tools-dev%2Bunsubscribe@ > > > > googlegroups.com> > > <rhino-tools-dev%2Bunsubscribe@ googlegroups.com> > > > > . > > > > > For more options, visit this group athttp:// > > > > groups.google.com/group/rhino-tools-dev?hl=en. > > > > > -- > > > > You received this message because you are subscribed to the Google > > Groups > > > > "Rhino Tools Dev" group. > > > > To post to this group, send email to [email protected]. > > > > To unsubscribe from this group, send email to > > > > [email protected]<rhino-tools-dev%2Bunsubscribe@ > > > > googlegroups.com> > > <rhino-tools-dev%2Bunsubscribe@ googlegroups.com> > > > > . > > > > For more options, visit this group at > > > >http://groups.google.com/group/rhino-tools-dev?hl=en. > > > > -- > > > Jan > > > > -- > > > You received this message because you are subscribed to the Google Groups > > "Rhino Tools Dev" group. > > > To post to this group, send email to [email protected]. > > > To unsubscribe from this group, send email to > > [email protected]<rhino-tools-dev%2Bunsubscribe@ > > googlegroups.com> > > . > > > For more options, visit this group athttp:// > > groups.google.com/group/rhino-tools-dev?hl=en. > > > -- > > You received this message because you are subscribed to the Google Groups > > "Rhino Tools Dev" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]<rhino-tools-dev%2Bunsubscribe@ > > googlegroups.com> > > . > > For more options, visit this group at > >http://groups.google.com/group/rhino-tools-dev?hl=en. > > -- > Jan > > -- > You received this message because you are subscribed to the Google Groups > "Rhino Tools Dev" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group > athttp://groups.google.com/group/rhino-tools-dev?hl=en. -- You received this message because you are subscribed to the Google Groups "Rhino Tools Dev" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rhino-tools-dev?hl=en.
