ZeroMQ и несколько фильтров подписки в Python

Я хотел бы подписаться на несколько фильтров с ZeroMQ в Python, используя один сокет.

sock.setsockopt(zmq.SUBSCRIBE, 'first.filter') sock.setsockopt(zmq.SUBSCRIBE, 'second.filter') 

Но это не работает. Учитывается только первая.

Однако я прочитал это на сайте zeromq : «Несколько фильтров могут быть присоединены к одному сокету ZMQ_SUB, и в этом случае сообщение должно быть принято, если оно соответствует хотя бы одному фильтру».

Я использую zmq 2.2.0.1

Поэтому мне интересно, как это сделать. , , есть идеи?

Это работает:

 import time import zmq ctx = zmq.Context() pub = ctx.socket(zmq.PUB) sub = ctx.socket(zmq.SUB) url = "tcp://127.0.0.1:5555" pub.bind(url) sub.connect(url) # subscribe to 'a' and 'b' sub.setsockopt(zmq.SUBSCRIBE, b'a') sub.setsockopt(zmq.SUBSCRIBE, b'b') time.sleep(1) for word in [ 'alpha', 'beta', 'gamma', 'apple', 'carrot', 'bagel']: pub.send(word) time.sleep(1) for i in range(4): print sub.recv(zmq.NOBLOCK) 

дает выход:

 alpha beta apple bagel 

Таким образом, обе подписки работают. Каков ваш точный код? Потому что, может быть, это еще одна проблема.