This may give you what you want, however since sockets are single  
threaded you'll have create separate publisher and subscriber threads,  
or have your service thread poll() multiple sockets.

Meanwhile -- please note below -- I left out the SECOND inproc:  (you  
need two -- one for each end of the device).

Look at the device code in the zeromq src, they're pretty trivial.

Best,

Matt

On Jul 16, 2010, at 3:26 PM, Dmitri Toubelis wrote:

> Thanks Matt,
>
> I will try your suggestion. There is not much documentation on  
> devices, so
> it looks like I need to dig into the code.
>
> What I'm trying to achieve here is N-way communication scheme,  
> something
> analogous to direct exchange in AMQP. The way I was thinking was to  
> create N
> nodes that could publish to the same bus and have subscribers, that  
> only
> receive messages directed to them. Each node is both publisher and
> subscriber, it receives message from the bus and depending on  
> workflow sends
> it to other subscribers using proper subscription key. So, I'm  
> expecting to
> have 4+ publishers on the bus and equal number of subscribers. It is
> straightforward to do using AMQP but I'm still not sure what is the  
> proper
> ZMQ way for this.
>
> Dmitri
>
> ________________________________
>
> From: [email protected]
> [mailto:[email protected]] On Behalf Of Matt  
> Weinstein
> Sent: July 16, 2010 2:56 PM
> To: 0MQ development list
> Subject: Re: [zeromq-dev] PUB/SUB with multiple publishers
>
>
> I think your PUB from the second publisher went to the first  
> publisher at
> the other end of the pipe ?
>
> You might try using a device() to connect two sets of sockets back- 
> to-back,
> just like the server example.
>
> I believe you'd do something like
>
> create "inproc://pubsource"
> device:
> bind as a SUB
> subscribe to all ("")
> publishers:
> connect as a PUB
>
> on the other side:
create "inproc://pubsink"
> device:
> bind as a PUB
> subscribers
> connect as a SUB
> subscribe to all ("")
>
> I think the "one way" device can be used as a model, you're only  
> going one
> way :-)
>
> On Jul 16, 2010, at 2:06 PM, Dmitri Toubelis wrote:
>
>
>       I call bind only once. The second time I use connect and it returns
> 0.
>       
>       Dmitri Toubelis
>       Solution Architect / Director @ Alkeron Multimedia
>       cell: +1-647-400-3876
>       email: [email protected]
> <mailto:[email protected]>
>       
>
> ________________________________
>
>       From: [email protected]
> [mailto:[email protected]] On Behalf Of Chuck Remes
>       Sent: July 16, 2010 1:48 PM
>       To: 0MQ development list
>       Subject: Re: [zeromq-dev] PUB/SUB with multiple publishers
>       
>       
>       On Jul 16, 2010, at 12:34 PM, Dmitri Toubelis wrote:
>
>
>                               I have a scenario when I need to use PUB/SUB
> scheme with multiple publishers. Is it possible to do with "inproc"
> transport?
>               
>               Here is what I tried:
>               - create PUB socket and bind it to "inproc://pipe" endpoint
>               - create another PUB socket and connect it to the same
> "inproc://pipe" endpoint
>               - create SUB socket for each subscriber and connect them to
> thre "inproc://pipe" endpoint.
>               - publish message using second publisher.
>               
>               I'm getting no error, but message is not getting delivered
> to subscribers. Am I doing something wrong?
>               
>
>       I don't think it is possible to have multiple sockets bind to the
> same endpoint. Are you certain that the result code from calling  
> bind is 0?
> If it is, then this is likely a bug and should be reported (with  
> sample
> code).
>
>       Alternately, if you are running this on Windows then I don't think
> inproc or ipc transports are supported on that platform. That should  
> also
> error out (if you are on Windows).
>
>       cr
>
>
>       _______________________________________________
>       zeromq-dev mailing list
>       [email protected]
>       http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>       
>
>
>
> _______________________________________________
> zeromq-dev mailing list
> [email protected]
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev

_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to