PUB functions the same in 3.1 as 2.1, but XPUB actually does publisher side filtering. (if I read the code correctly)

Joshua

On 3/13/2012 1:39 PM, Calvin de Vries wrote:
I'm not sure this is correct, Joshua. PUB filters the messages in 3.1, while you can use XPUB in order to do more advanced subscription management, it is not a requirement to have publisher side filtering.

In Steve's example, Subscriber A would not receive every message, only messages matching its filter.


On Mon, Mar 12, 2012 at 7:43 PM, Joshua Foster <[email protected] <mailto:[email protected]>> wrote:

    3.1 works the same way as 2.1 in your example. The changes in 3.1
    is that the subscription is forwarded to the PUB socket. This
    allows you to create a publisher device. It would sit between the
    parent publisher and the subscriber. The XPUB keeps track of the
    subscriptions and allows them to apply to the XSUB socket. This
    effectively filters out any messages that do not match a
    subscription. In your example, you are matching against "a" and ""
    so all messages would be passed through.

    You can of course use a ROUTER socket and manage the subscriptions
    yourself in the application (with DEALER). The main downside is
    that you won't be able to detect client disconnections. You may
    also want to consider creating an alternative PUB socket
    implementation in ZeroMQ.

    Joshua


    On 3/12/2012 6:48 PM, Steve wrote:
    I have a high level question about how a v3.1 publisher handles
    sending updates to subscribers.  I understand that v3.1 can push
    the subscription filtering further towards the publisher but to
    what degree I'm unclear on.

    Here is a very simple usage example:

    1) Publisher has a list of topics that are randomly updated 10
    times a second.  There are a total of 26 topics and each is a
    single lowercase alpha character representing the English
    alphabet (a - z).
    2) Subscriber 'A' subscribes to just a topic matching "a".
    3) Subscriber 'B' subscribes to all topics ("").

    In version 2.1, I believe Subscriber 'A' would receive all the
    messages and that the zeromq client library would filter them so
    the client would only see updates on 'a'.  In version 3.1, is it
    possible to filter the messages at the publisher so that
    Subscriber 'A' only receives updates on topic 'a' (no filtering
    done on the client) and that Subscriber 'B' receives all updates
    on all topics (a-z)?

    Thanks,

    Steve


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


    _______________________________________________
    zeromq-dev mailing list
    [email protected] <mailto:[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