[zeromq-dev] publisher side filtering

Pieter Hintjens ph at imatix.com
Wed Jun 30 14:15:00 CEST 2010


Dan,

0MQ does not provide publishers with the knowledge of what clients
connect.  This is a weakness we need to work on.

But if you imagine a multicast network you understand why.  Clients
connect to a switch, not to the publisher.  There is thus no way by
default to selectively publish.  Thus, clients receive everything and
filter at their edge.

A TCP unicast network can of course do it differently but 0MQ is
designed to work as far as possible with any transport and the
multicast model has influenced the design of its pubsub sockets.

-Pieter

On Wed, Jun 30, 2010 at 1:59 PM, ernie <elukie at comcast.net> wrote:
> Hi Pieter,
>
>> ZeroMQ does not directly support this, you would build it as an
>> application on top, defining your own protocol to connect clients and
>> server.
>
> Yes.  I have the protocol defined.  I just can not figure out what type
> of ZeroMQ pattern I can use to accomplish this.  Pub/sub doesn't work.
> REQ/REP isn't what I want because there is no immediate reply to the client.
>
> With a 'regular' socket, I'd listen on a port, accept new connections
> and have a new socket to link with a message client.  ZeroMQ handles all
> this for me and the message based transport which is great.  But, I'm
> still at a loss for how I can accomplish this.  Maybe I need to use the
> PAIR pattern, but can I have multiple clients connect to the same port?
>  I'm not sure how to identify the message with a client because all I
> have is the message.
>
> Dan
>
>> I'm designing something that looks a bit like this, with peer-to-peer
>> message flow, and rough-grained security based on "streams" of data
>> rather than a topic tree.  It needs to work over multicast, meaning
>> that you can't apply access controls at the server side.
>>
>> -Pieter
>>
>> On Wed, Jun 30, 2010 at 2:54 AM, ernie<elukie at comcast.net>  wrote:
>>> I am looking at building a message dispatch system.  The clients connect
>>> to a server on a well known port and subscribe to 'topics'.  Clients can
>>> also generate 'topics' of their own which are published to other
>>> subscribed clients.
>>>
>>> I need the subscription filtering to be done on the server rather than
>>> the individual clients.  One reason is "psuedo-security" -- some of the
>>> 'topics' I do not want to be pushed to certain clients.  Another reason
>>> is the 'topic' subscriptions will be sparse -- only a few of the main
>>> clients will be subscribing to individual 'topics'.
>>>
>>> Looking at the message patterns available in zeroMQ, I'm not clear that
>>> I can accomplish this.  I need to be able to identify which client
>>> generated a message and route it to subscribed clients.  I can not do
>>> this with the pub/sub pattern.  Since there is no response, I do not see
>>> that I can use the req/rep pattern.  I am new to zeromq, so I figure I
>>> am not understanding how or if I can implement this.  Any suggestions
>>> would be appreciated.
>>>
>>> _______________________________________________
>>> zeromq-dev mailing list
>>> zeromq-dev at lists.zeromq.org
>>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>>
>>>
>> _______________________________________________
>> zeromq-dev mailing list
>> zeromq-dev at lists.zeromq.org
>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>
>
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
>



More information about the zeromq-dev mailing list