ZeroMQ y múltiples filtros de suscripción en Python

Me gustaría suscribirme a varios filtros con ZeroMQ en Python, usando un socket.

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

Pero esto no funciona. Solo se toma en cuenta el primero. Sin embargo, leí esto en el sitio zeromq :

Se pueden adjuntar múltiples filtros a un solo zócalo ZMQ_SUB , en cuyo caso se aceptará un mensaje si coincide con al menos un filtro.

Estoy usando zmq 2.2.0.1. Entonces, me pregunto cómo hacer eso. ¿Algunas ideas?

Esto funciona:

 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) 

da salida:

 alpha beta apple bagel 

Así que ambas suscripciones funcionan. ¿Cuál es tu código exacto? Porque tal vez es otro problema.